从Silverlight 4调用https WCF服务仅适用于fiddler和VS2010

时间:2010-11-04 11:49:33

标签: silverlight wcf https fiddler

几天后,我尝试运行以下方案:

我有一个通过HTTPS调用WCF服务的Silverlight 4应用程序。 WCF服务位于我们的一台服务器上,Silverlight 4应用程序也可以从该服务器提供。经过几个小时的试验和错误(实际上比尝试更多的错误)我从我的本地计算机上的VS2010开发环境启动时运行它(参见SecurityError when calling a HTTPS-WCF Service from Silverlight 4)。

但是......

当我从VS2010启动SL-App时以及当fiddler正在运行时以及在我告诉fiddler忽略证书错误(我使用自签名证书)之后,对https-WCF的调用才有效。当fiddler没有运行时,我收到一个安全错误。当我的浏览器是IE时,这适用。当我从IE复制本地主机地址并将其粘贴到我的歌剧中时,它可以在没有提琴手的情况下工作 当我将Silverlight应用程序部署到服务器并从服务器调用它时,无论fiddler是否正在运行,WCF调用都不起作用。我刚刚收到标准消息,发生了异常。这在Opera和IE中都会发生。 Fiddler并没有要求我像在VS2010场景中那样忽略证书错误,所以也许某个地方是我问题的关键。不幸的是,我对这些东西没什么经验,所以我不知道,在哪里看或做什么。

我已经在stackoverflow(Silverlight Requests, Failures & Fiddler)上找到了关于小提琴问题的一些内容,但它并没有帮助我解决我的问题。

我希望你们中的一些人能够在我的头发变成灰色之前解决这个问题。

提前致谢,
弗兰克

Edith刚刚将证书安装为IE中的可信证书 - 但是当从服务器启动部署的silverlight应用程序时调用WCF时,我仍然会收到错误。至少我现在可以在IE中从VS2010启动SL应用程序时调用该服务(即使这对我没有帮助,当其他人必须使用该应用程序时。

2 个答案:

答案 0 :(得分:2)

几点想法:

  • 您看到的确切错误消息是什么?任何内部例外?

  • 这可能是跨域问题吗? (Silverlight XAP和WCF服务是否从完全托管在同一个域中,包括其HTTP与HTTPS特性,端口号,“localhost”和实际机器名称之间的区别等等?确切的是什么?它出现在ServiceReference.ClientConfig或代码中的地址,并且其域名完全是否与XAP的域名相匹配?)

  • 当它失败时,您是否看到任何呼叫尝试通过Fiddler? (如果没有,我强烈怀疑跨域问题)

  • 如果您从IE / Opera手动浏览到https://....../YourService.svc(而不是通过Silverlight中的代码调用服务),您是否可以成功查看服务信息页面,没有证书警告/错误?< / p>

答案 1 :(得分:2)

您的SSL证书与服务主机的名称是否相同?如果不是,则会导致错误,从而导致所描述的行为