我有一个我要连接的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.0
答案 0 :(得分:0)
2003?你使用什么框架?
我不熟悉错误,但您可以通过在服务上的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文件夹中。
希望它有所帮助。