簡體   English   中英

IIS 6上的WCF服務托管

[英]WCF service hosting on IIS 6

我有一個.net 4.0 WCF REST服務,該服務在Windows 7 IIS 7上本地運行良好,但是當我嘗試在運行Windows Server 2003並具有IIS 6的QA服務器上部署它時,我開始收到Bad Request錯誤。 我已經嘗試過解決方案,但是它對我不起作用。 似乎我發送給服務器的XML沒有被反序列化,我正在使用XmlSerializer。 有任何想法嗎?

編輯:使用提琴手我有異常詳細信息:

    Request Error
      The server encountered an error processing the request. The exception message is 'There is an error in XML document (4, 354066).'. See server logs for more details. The exception stack trace is: </p>
      at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader)
   at System.ServiceModel.Dispatcher.UnwrappedTypesXmlSerializerManager.XmlSerializerXmlObjectSerializer.ReadObject(XmlDictionaryReader reader, Boolean verifyObjectName)
   at System.ServiceModel.Dispatcher.SingleBodyParameterMessageFormatter.ReadObject(Message message)
   at System.ServiceModel.Dispatcher.SingleBodyParameterMessageFormatter.DeserializeRequest(Message message, Object[] parameters)
   at System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)
   at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)
   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&amp; rpc)
   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

xmlvalidation.com告訴我我的XML是正確的,而且我在本地IIS上使用相同的XML也會得到正確的響應

解決方案: 這里

有兩種可能性:

  • 這可能是版本差異。 您發送到服務的xml是相同的。 但是IIS 6上的C#dto類不同,因此反序列化錯誤。
  • 您使用了僅在使用.net Framework 4的WCF中支持的某些數據類型(例如,枚舉)。

嘗試這個:

  • 向該聯系人添加一個新方法,該方法接受一個字符串並返回一個字符串。
  • 檢查對兩個機器都適用
  • 然后逐漸增加方法的復雜性,直到它與您的實際方法匹配,並在每次更改后進行測試。

我正在努力解決的問題未設置消息的單個文本字段的最大長度。 我假設,如果該值為0,則IIS會采用某種默認值,對於IIS 7,該默認值大於IIS 6,而且幸運的是對於我的XML消息而言。 請參考鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM