Silverlight应用程序中的WCF服务

时间:2012-07-02 19:38:00

标签: wcf silverlight web-services

我有一个Silverlight 5应用程序,它从另一个项目中的启用Silverlight的WCF服务获取数据(我的解决方案有一个Silverlight项目和一个Web项目)。有许多类似的帖子,但它们指的是托管在Web服务器上的Web服务(适当的Web服务)。

我知道我必须告诉应用程序在dev和prod中找到服务的位置。在开发中,你通常会有一个端口。我创建服务客户端(使用正确的EndpointAddress)的代码是这样的:

BasicHttpBinding binding = new BasicHttpBinding(
        Application.Current.Host.Source.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase)
        ? BasicHttpSecurityMode.Transport : BasicHttpSecurityMode.None);
binding.MaxReceivedMessageSize = int.MaxValue;
binding.MaxBufferSize = int.MaxValue;
Uri tempUri = new Uri("../PolicyDataService.svc", UriKind.Relative);
EndpointAddress servAddr = new EndpointAddress(tempUri);
PolicyDataServiceClient temp = new PolicyDataServiceClient("BasicHttpBinding_PolicyDataService", servAddr);
return temp;

现在,我哪里错了?在开发中,一切正常,但在生产中,服务永远不会被调用。谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定发生了什么,但如果您还没有,可以尝试以下几项:

  1. 浏览Prod上的svc文件并确保可以访问它(http://yoursite/PolicyDataService.svc)
  2. 将您的代码指向prod位置,并确保您可以毫无问题地连接。如果您可以连接,这样做通常会揭示问题所在。
  3. 由于您正在使用BasicHttpBinding,因此不应该遇到绑定的安全问题。我知道这是非常基本的,但必须从某个地方开始。