在Windows 8商店应用程序WCF服务上更改端点地址会导致“客户端和服务绑定可能不匹配”异常

时间:2013-10-11 05:27:29

标签: c# wcf windows-8 windows-store-apps

我写了一个Windows 8商店应用程序,这是我公司的业务线(LOB)应用程序。应用程序使用basicHttpBinding命中应用程序托管的WCF服务。我没有连接到服务的问题,我可以在应用程序运行时从服务中检索数据。

当我尝试以编程方式更改应用指向的服务URI时,我的问题就出现了。如果我将其更改为另一个以完全相同的方式设置的WCF服务(我将它从我们的UAT环境更改为PROD环境),我收到以下异常:

Content Type text/xml; charset=utf-8 was not supported by service http://server/service.  The client and service bindings may be mismatched.

编辑 - 我忘了提及,如果我尝试更改Web服务客户端已经指向的URI,就会发生这种情况。

在尝试调试时,我注意到如果我调试了客户端构造,应用程序将连接到服务而没有问题。

我还发现,如果我在客户端构造和更改服务URI之间放置任何延迟,它就可以正常工作。

这是构造代码 - 延迟注释,它不起作用,如果没有注释,它可以工作:

private async void CreateWebServiceClient()
{
    this.StockLevelsClient = new StockLevelsWebservice.StockLevelsServiceClient();
    await Task.Delay(TimeSpan.FromMilliseconds(1));
    this.StockLevelsClient.Endpoint.Address = new System.ServiceModel.EndpointAddress(_uri);
}

它适用于延迟,但我想了解它的工作原理......以及如何使它采用狡猾的解决方法。

0 个答案:

没有答案