WCF 3.5到3.0向后兼容回调服务

时间:2010-04-16 04:50:57

标签: .net wcf .net-3.5 wcf-client

我在.NET 3.0应用程序中托管了一组现有的WCF服务。他们使用WSHttp绑定而没有安全性。

我需要从.NET 3.5客户端连接到这些。这似乎对单向服务工作正常,但我也有一些回调服务(使用CallbackContract和SessionMode = Required,使用WSDualHttpBinding);这些无法连接到ReliableSession代码中的某个超时。

无法更改服务端(这是历史版本问题)。我可以在客户端修改某些内容以使其正常工作吗? (我可以很好地连接.NET 3.0客户端,但我不想被迫尝试这条路径。)

The open operation did not complete within the allotted timeout of 00:00:09.9410000.
The time allotted to this operation may have been a portion of a longer timeout.
Server stack trace: 
   at System.ServiceModel.Channels.ReliableRequestor.ThrowTimeoutException()
   at System.ServiceModel.Channels.ReliableRequestor.Request(TimeSpan timeout)
   at System.ServiceModel.Channels.ClientReliableSession.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ClientReliableDuplexSessionChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)

1 个答案:

答案 0 :(得分:1)

好的,对不起噪音。事实证明,问题实际上是由于生成的客户端代码;当时,我在本地计算机上运行.NET 3.5服务,在远程计算机上运行.NET 3.0服务。它们有不同的命名空间,看起来VS正在拿起本地服务命名空间,即使我特意告诉它连接到远程IP。在本地服务器未运行的情况下重新生成客户端代码后,它运行正常。