【发布时间】:2013-07-08 07:26:42
【问题描述】:
我有一个 .net 4.0 WCF REST 服务,它在 Windows 7 IIS 7 上本地运行得非常好, 但是当我尝试在运行 Windows Server 2003 并具有 IIS 6 的 QA 服务器上部署它时,我开始收到错误请求错误。 我已经尝试过this 解决方案,但它对我不起作用。 我发送到服务器的 XML 似乎没有被反序列化,我正在使用 XmlSerializer。 有什么想法吗?
编辑: 使用 Fiddler 我有异常详细信息:
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& rpc)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
xmlvalidation.com 告诉我我的 XML 是正确的,而且我在本地 IIS 上使用相同的 XML 得到了正确的响应
解决方案: here
【问题讨论】:
-
您在尝试从浏览器、WCF 测试客户端或在您自己的代码中调用 WCF 服务时是否遇到错误?另外,您是否介意发布一些异常详细信息以显示有关错误请求的更多信息。
-
我在浏览器中点击服务地址时没有错误,但是当我尝试从我的 c# 应用程序调用 POST 方法时,我得到“服务器响应:错误请求”
-
您是否将 IIS6 中 virtaul 目录的应用程序池设置为 4.0?
-
如何在 IIS 6 上做到这一点?我已经右键单击虚拟目录 -> 属性 -> ASP.NET -> 版本 = 4.0
-
参考这个link