0

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

我知道我必须告诉应用程序在哪里可以找到开发和生产中的服务。在开发中,您通常会有一个端口。我创建服务客户端(使用正确的 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;

现在,我哪里错了?在 dev 中,一切正常,但在 prod 中,该服务永远不会被调用。谢谢!

4

1 回答 1

0

我不确定发生了什么,但如果您还没有,可以尝试以下一些方法:

  1. 浏览到 Prod 上的 svc 文件并确保您可以访问它 (http://yoursite/PolicyDataService.svc)
  2. 将您的代码指向 prod 位置,并确保您可以毫无问题地连接。如果您可以连接,这样做通常会揭示问题所在。

由于您使用的是 BasicHttpBinding,因此您不应该遇到与绑定有关的安全问题。我知道这是非常基本的,但必须从某个地方开始。

于 2012-07-07T14:38:46.267 回答