Silverlight wcf 连接错误

Posted

技术标签:

【中文标题】Silverlight wcf 连接错误【英文标题】:Silverlight wcf connection error 【发布时间】:2012-04-27 10:50:39 【问题描述】:

我还有大约一个月的时间来开发我的 silverlight 应用程序(这是我的第一个)。直到今天,一切都很顺利,当我突然收到这条消息时:

尝试向 URI 'http://localhost:2682/Services/Authentication/LoginService.svc' 发出请求时出错。这可能是由于在没有适当的跨域策略或不适合 SOAP 服务的策略的情况下尝试以跨域方式访问服务。您可能需要联系服务的所有者以发布跨域策略文件并确保它允许发送与 SOAP 相关的 HTTP 标头。此错误也可能是由于在 Web 服务代理中使用内部类型而不使用 InternalsVisibleToAttribute 属性造成的。有关详细信息,请参阅内部异常。

我正在使用 WCF 服务,直到现在这个问题才出现。 我在我的 [projectname].web 文件夹中添加了一个 clientdomain.xml 和 clientaccesspolicy.xml 文件,并以 1000 种不同的方式重新编写了它们。 我也用过 Fiddler,它告诉我这两个文件都有错误,错误是

[Fiddler] 与 localhost 的套接字连接失败。 ErrorCode: 10061. 无法连接,因为目标机器主动拒绝 127.0.0.1:2682

我搜索了错误“10061”,它与套接字定义有关。但我找不到任何解决方案。

不知道和它有没有关系,但是我的“ASP.net开发服务器”端口是6939。

请记住,该应用尚未部署,因此这只发生在本地。我正在使用 MS VS 2010 和 MS SQL Server 2008。

我做错了什么还是这是一个 Silverlight 问题??

最后一点,我没有更改端口、套接字或服务配置的任何内容。我做的最后一件事是在客户端编辑 XAML 文件,然后应用开始向我抛出此错误。

需要帮助,在解决此问题之前无能为力!!!! 谢谢。

【问题讨论】:

你的silverlight app和wcf服务是两个独立的visual studio解决方案吗? 我认为 Visual Studio Web 服务器有时会自动切换端口号。如果端口号与您执行“添加服务引用”时的端口号不同,则如果更改,它将失败。尝试改用 IIS。无论如何,这可能是您最终将部署到的内容,因此在开发过程中使用它是有意义的。 @ShoaibShaikh 不,他们在同一个项目上。我已经发现了问题,但没有找到原因。谢谢 @HenrikSöderlund 感谢您的提示,这正是发生的事情。直到现在才想到这一点,我将看看 IIS 并进行必要的修改。谢谢 您甚至可以尝试从代码创建客户端代理实例,而不是依赖 ServiceReferences.ClientConfig 【参考方案1】:

嗯,昨晚,就在我上床睡觉之前,我发现了一些奇怪的事情。在我的“ServiceReferences.ClientConfig”文件中,我的每个服务的端点端口都与 silverlight 机器使用的不同,所以我有预感(并且因为我达到了我的理智断点)我决定消除我的所有服务引用并重新添加它们。

我工作了……去想想吧。仍然不知道为什么会发生这种情况,如果有人能对这个问题有所了解,我将不胜感激。不得不重新添加我所有的服务引用有点烦人。现在我只有6个,但在不久的将来可能会超过20个,如果再次发生这种情况......好吧,这将是一个真正的痛苦......

谢谢

【讨论】:

【参考方案2】:

我认为您在 localhost 上使用您的应用程序并且分配了一个动态端口,并且该端口不是固定的,每次运行都会导致拒绝问题。如果你想解决这个问题,例如创建一个可靠的 url,

http://localhost/apps/Services/Authentication/LoginService.svc

【讨论】:

以上是关于Silverlight wcf 连接错误的主要内容,如果未能解决你的问题,请参考以下文章

部署的 WCF Silverlight 应用程序返回 404 错误

在 silverlight 中使用 WCF CloseAsync

使用证书连接时 WCF 请求引发错误

WCF 跨域策略安全错误

WCF跨域策略安全性错误

Silverlight WCF 超时