0

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

4

1 回答 1

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

希望能帮助到你。

于 2014-08-07T22:27:03.433 回答