首页 > 解决方案 > System.ServiceModel.CommunicationException

问题描述

我正在使用 WCF 客户端服务器。WCF 服务器安装在终端服务器上。当我在本地测试它时,一切都可以与本地 WCF 服务器一起使用。

An unhandled exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dll
Fehler beim Deserialisieren des Textkörpers der Antwortnachricht für Vorgang "MixGas". Es wurde das Endelement "MixGasResult" aus Namespace "http://tempuri.org/" erwartet. Gefunden wurde "Element "b:GasMatrice" aus Namespace "http://schemas.datacontract.org/2004/07/RadaxPpdsLibrary"".


Unbehandelte Ausnahme: System.ServiceModel.CommunicationException: Fehler beim Deserialisieren des Textkörpers der Antwortnachricht für Vorgang "MixGas". Es wurde das Endelement "MixGasResult" aus Namespace "http://tempuri.org/" erwartet. Gefunden wurde "Element "b:GasMatrice" aus Namespace "http://schemas.datacontract.org/2004/07/RadaxPpdsLibrary"". ---> System.Xml.XmlException: Es wurde das Endelement "MixGasResult" aus Namespace "http://tempuri.org/" erwartet. Gefunden wurde "Element "b:GasMatrice" aus Namespace "http://schemas.datacontract.org/2004/07/RadaxPpdsLibrary"".
   bei System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)
   bei System.Xml.XmlExceptionHelper.ThrowEndElementExpected(XmlDictionaryReader reader, String localName, String ns)
   bei System.Xml.XmlBaseReader.ReadEndElement()
   bei System.Xml.XmlBaseReader.ReadElementContentAsString()
   bei System.Xml.XmlBinaryReader.ReadElementContentAsString()
   bei System.ServiceModel.Dispatcher.PrimitiveOperationFormatter.DeserializeResponse(XmlDictionaryReader reader, Object[] parameters)
   bei System.ServiceModel.Dispatcher.PrimitiveOperationFormatter.DeserializeReply(Message message, Object[] parameters)
   --- Ende der internen Ausnahmestapelüberwachung ---

我不知道我该怎么办。调用如下:

   public string MixGas(double incomingMassFlow, string incomingGasInp, double sideMassFlow, string sideGasInp,
        out double outgoingMassFlow, out string outgoingGasInp)
    {
        var result = Channel.MixGas(incomingMassFlow, incomingGasInp, sideMassFlow, sideGasInp,
            out outgoingMassFlow, out outgoingGasInp);

        return result;

    }

Channel.MixGas 方法引发此异常。我正在使用其他服务器方法,没有任何例外。

此服务器配置文件是:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
    </startup>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="All"
              propagateActivity="true">
        <listeners>
          <add name="traceListener"
               type="System.Diagnostics.XmlWriterTraceListener"
               initializeData= "Traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
</configuration>

这是 C# 中的服务器配置:

   serviceHost = new ServiceHost(typeof(RadaxPpdsServerLibrary.RadaxPpdsService));

     var binding = new NetTcpBinding()
    {
        OpenTimeout = new TimeSpan(0, 10, 0),
        CloseTimeout = new TimeSpan(0, 10, 0),
        SendTimeout = new TimeSpan(0, 10, 0),
        ReceiveTimeout = new TimeSpan(0, 10, 0),
        MaxReceivedMessageSize = 1000000,
        MaxBufferSize = 1000000,
        MaxConnections = 100,
        Security =
        {
            Mode = SecurityMode.None,
        }
         // PortSharingEnabled = true
     };

    serviceHost.AddServiceEndpoint(typeof(IRadaxPpdsService), binding, "net.tcp://localhost:60000/RadaxPpdsService/RadaxPpdsEndpoint");

标签: wcfexception

解决方案


如果你发布你的配置文件,那就太好了,没有你的配置文件很难找到问题。


推荐阅读