【问题标题】:Calling a https WCF-Service from Silverlight 4 only works with fiddler and from VS2010从 Silverlight 4 调用 https WCF 服务仅适用于提琴手和 VS2010
【发布时间】:2010-11-04 11:49:33
【问题描述】:

几天来,我尝试运行以下场景:

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

但是……

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

我已经在 stackoverflow (Silverlight Requests, Failures & Fiddler) 上发现了一些关于提琴手问题的信息,但这并不能帮助我解决我的问题。

我希望你们中的一些人能在这个问题上有所启发,以免我的头发变白。

提前致谢,
弗兰克

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

【问题讨论】:

    标签: silverlight wcf https fiddler


    【解决方案1】:

    几个想法:

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

    • 这可能是一个跨域问题吗? (Silverlight XAP 和 WCF 服务是否从 完全 托管在同一个域中,包括其 HTTP 与 HTTPS 特征、端口号、“本地主机”和实际机器名称之间的区别等?具体是什么?在 ServiceReference.ClientConfig 或代码中显示的地址,其域名完全与 XAP 的域名匹配吗?)

    • 您是否看到 任何 调用在 Fiddler 失败时尝试通过? (如果不是,我强烈怀疑是跨域问题)

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

    【讨论】:

    • 特别是对于要点 #3,当 Fiddler 运行时,您的代理设置是什么。如果它们设置为 AutoDetect,那么问题很可能是您的跨域调用是跨区域调用,这是 Silverlight 完全禁止的。
    • @Eric:我已经把你关于跨域调用的文章加红了,并确保服务主机和 silverlight-app-host 都在本地网络的列表中(感谢提琴手,顺便说一句:))
    • 我认为它是#2!我的 silverlight-app 是通过 http 调用的,我的 wcf 服务是通过 https 调用的。当我通过 https 调用 sl-app 时,它可以工作!如果我理解正确,这是因为我使用了自签名证书(尽管我将它安装在 IE 中的“可信赖的根 CA”下)并且它可以使用官方签名的证书。所以我想我会去买一个。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多