WCF服务在服务器2003上获得MessageContract错误,而不是在其他位置
本文关键字:其他 位置 错误 服务器 服务 2003 WCF MessageContract | 更新日期: 2023-09-27 18:16:56
我有一个WCF服务我正在连接。在测试时,它在我的本地机器上运行良好。在运行windows server 2008的一个测试位置上也可以正常工作。
我们的一台生产机器运行的是windows server 2003,我得到这个错误消息:
The operation 'theOperation' could not be loaded because it has a parameter or return type of type System.ServiceModel.Channels.Message or a type that has MessageContractAttribute and other parameters of different types. When using System.ServiceModel.Channels.Message or types with MessageContractAttribute, the method must not use any other types of parameters.
我已经调查了错误,知道这意味着什么,但我很困惑,因为它适用于2个位置,而不是其他。是否有一些关于服务器2003或其他一些我可能丢失的设置,导致我们的生产服务器上的问题?代码是完全一样的
编辑:我使用。net 4.02003?您使用的是什么框架?
我不熟悉这个错误,但是你可以通过在你的服务上的app.config中添加以下部分来打开你的服务的日志记录(我允许你不在IIS中托管)。
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true" >
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging">
<listeners>
<add name="xml"/>
</listeners>
</source>
<source name="myUserTraceSource"
switchValue="Information, ActivityTracing">
<listeners>
<add name="xml"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:'locationofourlogfile'wcf.svclog" />
</sharedListeners>
</system.diagnostics>
这将记录到配置中提供的位置,您可以在svcutil中打开该文件,也许会得到一些信息。SvcUtil位于您的winsdk文件夹中。
希望能有所帮助。