2012-11-30 48 views
0

我有一個WCF服務工作(之前的小的改動)的單獨服務器上本地工作和以前。它現在拋出一個「無法識別的消息版本」CommunicationException。什麼可能導致這種情況?獲得「無法識別的消息版本」異常試圖調用WCF服務

在排除故障時,我發現,它的發生某處服務器上的WCF「神奇」中解析到一個使用它的自定義綁定定義之前。

服務器本身也有一些胡鬧它周圍最近完成添加SSL和更改主機名,所以我想知道如果有找到服務的東西IIS(7.5)之間的特定服務器發生,我的代碼獲取調用。

我的服務繼承自一個基類,該基類包含一個簡單的Ping方法,該方法一旦聯繫就返回成功。這對所有其他內部服務器部署都有效,但即使調用此方法現在也會提供無法識別的消息版本。

調用代碼只是使用VS生成的服務引用創建一個實例然後調用它:

 var MyService = new MyNamespace.MyServiceClient(); 
     var result = MyService.Ping(); 

更新 堆棧跟蹤(沒有的InnerException存在)使我懷疑,如果它是SOAP相關:

Server stack trace: 
    at System.ServiceModel.Channels.ReceivedMessage.ReadStartEnvelope(XmlDictionaryReader reader) 
    at System.ServiceModel.Channels.BufferedMessage..ctor(IBufferedMessageData messageData, RecycledMessageState recycledMessageState, Boolean[] understoodHeaders, Boolean understoodHeadersModified) 
    at System.ServiceModel.Channels.TextMessageEncoderFactory.TextMessageEncoder.ReadMessage(ArraySegment`1 buffer, BufferManager bufferManager, String contentType) 
    at System.ServiceModel.Channels.MessageEncoder.ReadMessage(Stream stream, BufferManager bufferManager, Int32 maxBufferSize, String contentType) 
    at System.ServiceModel.Channels.HttpInput.ReadChunkedBufferedMessage(Stream inputStream) 
    at System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(Exception& requestException) 
    at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) 
    at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) 
    at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 
Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at Lenderprise.WebServiceHost.Test.LLSSTitleSearch.ITitleSearch.Ping() 
    at Lenderprise.WebServiceHost.Test.LLSSTitleSearch.TitleSearchClient.Ping() in D:\LLN\DEV\LenderPrise\WebServices\TitleSearchWebServiceHost.Test\Service References\LLSSTitleSearch\Reference.cs:line 138 
    at Lenderprise.MainWindow.RunAsLibraryButton_Click(Object sender, RoutedEventArgs e) in D:\LLN\DEV\LenderPrise\WebServices\TitleSearchWebServiceHost.Test\MainWindow.xaml.cs:line 91 

有什麼建議嗎?

回答

0

一個漂亮的利基情況下在這裏:我們有一個負載均衡(F5),它還管理SSL證書。進來的請求看起來正確地被轉發到服務器,但也被重定向回到它自己。我不是網絡工程師,不足以知道所有細節,但它是F5配置而不是WCF。

相關問題