Silverlight WCF服务到服务调用

时间:2010-02-19 20:24:36

标签: wcf silverlight

问题:

调用从Silverlight调用其他服务的服务是否存在已知问题?

情境:

我有以下3个项目:

  1. SilverlightClient - 带按钮的Silverlight项目

  2. SilverlightClient.Web - 托管SilverlightClient.xap的Web应用程序。

  3. BackEnd - 承载 FOO 服务的另一个Web应用程序,它执行一些特殊的后端处理。

  4. 我在SilverlightClient.Web和Backend中创建了一个支持Silverlight WCF的Web服务。它们分别是 SilverlightClientService BackEndService

    SilverlightClient.Web 我添加对 BackEndService 的服务引用。我有一个测试ASPX页面,我编写了成功调用 BackEndService 的代码。

    SilverlightClient 我添加了对 SilverlightClient.Web SilverlightClientService 的服务引用。如果我的 SilverlightClientService 返回纯数据,例如字符串,那么它的效果非常好。

    但是,当我更改 SilverlightClientService 以调用 BackEndService 时,我得到以下异常:

    HTTP 415 - “请求失败,HTTP状态415:不支持的媒体类型。”

2 个答案:

答案 0 :(得分:1)

我遇到了2个没有通信的服务的问题。我们终于发现使用Cassini(内置的Visual Studio IIS)来托管ListenerService“BackEnd”导致了这个问题。将项目切换为在IIS的虚拟目录中启动允许两者进行通信。

我看到:收到http://localhost:1484/MainListenerService.cs的HTTP响应时发生错误。这可能是由于服务端点绑定不使用HTTP协议。这也可能是由于服务器中止HTTP请求上下文(可能是由于服务关闭)。请参阅服务器日志以获取更多详而这个错误: 客户端身份验证方案“Anonymous”禁止HTTP请求。

答案 1 :(得分:0)

您使用的是basicHttpBinding吗? Silverlight仅支持basicHttpBinding,但创建WCF服务时的默认值是wsHttpBinding。在添加Silverlight项目的引用之前,应该在web.config上更改它。观看Tim Heuer的视频:http://silverlight.net/learn/videos/all/how-to-consume-wcf-and-aspnet-web-services-in-silverlight/