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.0

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

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

希望能有所帮助。