我有一个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;
现在,我哪里错了?在开发中,一切正常,但在生产中,服务永远不会被调用。谢谢!
答案 0 :(得分:0)
我不确定发生了什么,但如果您还没有,可以尝试以下几项:
由于您正在使用BasicHttpBinding,因此不应该遇到绑定的安全问题。我知道这是非常基本的,但必须从某个地方开始。