WCF服务在服务器2003上而不是其他位置获取MessageContract错误

时间:2014-08-07 21:46:12

标签: c# wcf windows-server-2003 messagecontract

我有一个我要连接的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

1 个答案:

答案 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文件夹中。

希望它有所帮助。