Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 与发送拉丁特殊字符后WCF标头中的HTTP Content Length 400错误不一致_.net_Wcf_Iis 7 - Fatal编程技术网

.net 与发送拉丁特殊字符后WCF标头中的HTTP Content Length 400错误不一致

.net 与发送拉丁特殊字符后WCF标头中的HTTP Content Length 400错误不一致,.net,wcf,iis-7,.net,Wcf,Iis 7,我将WCF与.Net 4.0一起使用,其中包含安全模式TransportWithMessageCredential over https的basicHttpBinding的所有默认值。当我从发送特殊字符链接的客户端进行web方法调用时,该方法成功,但下一次方法调用都会出现404错误,没有进一步的信息,并且在跟踪日志中显示以下错误: 可用字节数与HTTP协议不一致 内容长度标题。可能出现了网络错误或 客户端可能正在发送无效的请求 因为我使用的是默认值,所以文本编码是utf-8。我在IIS7和IIS

我将WCF与.Net 4.0一起使用,其中包含安全模式TransportWithMessageCredential over https的basicHttpBinding的所有默认值。当我从发送特殊字符链接的客户端进行web方法调用时,该方法成功,但下一次方法调用都会出现404错误,没有进一步的信息,并且在跟踪日志中显示以下错误:

可用字节数与HTTP协议不一致 内容长度标题。可能出现了网络错误或 客户端可能正在发送无效的请求

因为我使用的是默认值,所以文本编码是utf-8。我在IIS7和IIS7.5上进行了测试。使用IIS Express的本地计算机上也会出现同样的问题。不寻常的是,这个特殊的字符被写入服务器并成功地写入数据库,然后WCF只是一种故障。我必须重新设置WCF的网站才能在服务器上重新开始工作

以下是失败的测试代码:

using (ToursServiceClient client = new ToursServiceClient())
{
    client.ClientCredentials.UserName.UserName = "test";
    client.ClientCredentials.UserName.Password = "test";

    Tour tour = new Tour();
    tour.Customer = new Customer();
    tour.Customer.FirstName = "ñ";

    InsertTourResult insertTourResult = client.InsertTour(tour);
    Tour insertedTour = client.GetTourByTourID(insertTourResult.TourID);
}
此代码在调用以下对象时失败:

client.GetTourByTourID(insertTourResult.TourID);
如果我更改此代码行,则此代码成功:

tour.Customer.FirstName = "ñ";
致:

虽然我只使用默认绑定,但为了完整起见,我将在此处列出它们:

<binding name="BasicHttpBinding_ToursService" closeTimeout="00:01:00"
     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
     allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
     maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
     messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
     useDefaultWebProxy="true">
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
      maxBytesPerRead="4096" maxNameTableCharCount="16384" />
     <security mode="TransportWithMessageCredential">
      <transport clientCredentialType="None" proxyCredentialType="None"
       realm="" />
      <message clientCredentialType="UserName" algorithmSuite="Default" />
     </security>
    </binding>

非常感谢您的帮助。 谢谢 泰勒

<binding name="BasicHttpBinding_ToursService" closeTimeout="00:01:00"
     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
     allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
     maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
     messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
     useDefaultWebProxy="true">
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
      maxBytesPerRead="4096" maxNameTableCharCount="16384" />
     <security mode="TransportWithMessageCredential">
      <transport clientCredentialType="None" proxyCredentialType="None"
       realm="" />
      <message clientCredentialType="UserName" algorithmSuite="Default" />
     </security>
    </binding>