POST Method in wcf Rest Service

2019-03-06 11:31发布

i am getting the same error:

protected void Button1_Click(object sender, EventArgs e)
            {
            BasicHttpBinding binding = new BasicHttpBinding();
            binding.ReaderQuotas.MaxStringContentLength = 2000000;
            binding.MaxBufferSize = 2147483647;
            binding.MaxReceivedMessageSize = 2147483647;
            binding.ReaderQuotas.MaxNameTableCharCount = 2147483647;
           binding.Security.Transport.ClientCredentialTypeHttpClientCredentialType.Windows;
            binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
            binding.CloseTimeout = new TimeSpan(4, 0, 0);
            binding.OpenTimeout=new TimeSpan(4, 0, 0);
            binding.ReceiveTimeout=new TimeSpan(2, 0, 0);
            binding.SendTimeout = new TimeSpan(5, 0, 0);
            EndpointAddress endpoint = new EndpointAddress(new Uri("http://localhost:35798/RestServiceImpl.svc"));
            RestPostService.RestServiceImplClient obj = new RestPostService.RestServiceImplClient(binding, endpoint);
            RestPostService.EmailDetails obj1 = new RestPostService.EmailDetails();
            obj.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
            RestPostService.EmailDetails obj2=obj.SendMail(obj1);  
        }


 **web.config**
<?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="webHttpBinding" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" closeTimeout="00:01:00"
                 openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"/>
      </webHttpBinding>
    </bindings>
    <services>
      <service name="RestService.RestServiceImpl" behaviorConfiguration="ServiceBehaviour">
        <endpoint address ="http://localhost:35798/RestServiceImpl" binding="webHttpBinding" contract="RestService.IRestServiceImpl" behaviorConfiguration="webHttp"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="webHttp">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <dataContractSerializer maxItemsInObjectGraph="6553600"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

What changes should i made in order to make the code working.
Error: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.

Please help in the indiacted issue.

标签: c++ wcf rest post
1条回答
该账号已被封号
2楼-- · 2019-03-06 11:47

You are using the wrong WCF binding in you code. The config XML shows the WCF service using the WebHttpBinding. Refactor your client creation code to something like:

WebHttpBinding binding = new WebHttpBinding();
// The rest of the configuration

Don't know if all the properties you are setting will be valid for this binding but the compiler will know :)

查看更多
登录 后发表回答