WCF CommunicationException

时间:2012-07-11 10:24:59

标签: c# wcf exception

我在Web应用程序中使用WCF服务。有两个服务,一个方法which returns string首先出现,然后在第二个方面返回DataTable First one is working properly当我通过服务打电话时。 但while calling second one我得到以下exception enter image description here

这是服务器中的配置

  

                                                                                                                                                                                                             

  <service behaviorConfiguration="ServiceBehavior" name="RmtUsers.Menu">
    <endpoint address="" binding="wsHttpBinding" contract="IRmtUsers.IMenu">
      <identity>
        <dns value="192.168.50.35"/>
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>

  <service behaviorConfiguration="ServiceBehavior" name="RmtUsers.Product">
    <endpoint address="" binding="wsHttpBinding" contract="IRmtUsers.IProduct">
      <identity>
        <dns value="192.168.50.35"/>
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
          </services>
      <behaviors>             <serviceBehaviors>
          <behavior name="ServiceBehavior">
              <serviceMetadata httpGetEnabled="true"/>
              <serviceDebug includeExceptionDetailInFaults="true"/>
          </behavior>             </serviceBehaviors>         </behaviors>    </system.serviceModel>

在客户端

 <bindings>
  <wsHttpBinding>
    <binding name="WSHttpBinding_IMenu" closeTimeout="00:01:00" openTimeout="00:01:00"
      receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false"
      transactionFlow="false" hostNameComparisonMode="StrongWildcard"
      maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
      textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
      <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
        maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <reliableSession ordered="true" inactivityTimeout="00:10:00"
        enabled="false" />
      <security mode="Message">
        <transport clientCredentialType="Windows" proxyCredentialType="None"
          realm="" />
        <message clientCredentialType="Windows" negotiateServiceCredential="true"
          algorithmSuite="Default" />
      </security>
    </binding>
    <binding name="WSHttpBinding_IProduct" closeTimeout="00:10:00"
      openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
    bypassProxyOnLocal="false" transactionFlow="falsehostNameComparisonMode="StrongWildcard"
      maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
      textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <reliableSession ordered="true" inactivityTimeout="00:10:00"
        enabled="false" />
      <security mode="Message">
        <transport clientCredentialType="Windows" proxyCredentialType="None"
          realm="" />
        <message clientCredentialType="Windows" negotiateServiceCredential="true"
          algorithmSuite="Default" />
      </security>
    </binding>
     

                                                                                                                   

2 个答案:

答案 0 :(得分:1)

尝试以下操作。

1 - 使用SvcTraceViewer实用程序来跟踪问题的原因。 2 - 给你从WCF返回的数据表给出一些名称。

new DataTable("someName");

WCF:未使用名称初始化DataTable。请注意为什么..

答案 1 :(得分:0)

我尝试使用以下代码。现在它工作正常

   DataTable dt = new DataTable("products");
     dt= getData();  
     DataSet ds = new DataSet();
     ds.Tables.Add(dt);
     return ds.Tables[0];

我从Jani5e

得到了这个回复