无法向WCF服务

时间:2016-08-30 05:22:12

标签: c# web-services wcf soap jmeter

我有一个MVC 5 Web应用程序,其中我有一个WCF服务,其中包含以下合同:

[ServiceContract(ConfigurationName="IDocumentGenerator")]
public interface IDocumentGenerator
{
    [OperationContract(Action = "GenerateDocument"), XmlSerializerFormat]
    Stream GenerateDocument(string DocId, string Format, string returnAs, string userName, string password, XmlDocument Payload);
}

我在Web.Config文件中使用以下配置:

<system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding
          maxBufferPoolSize="2147483647"
          maxReceivedMessageSize="2147483647"
          maxBufferSize="2147483647" transferMode="Streamed">
        </binding>
      </webHttpBinding>
    </bindings>    
    <client>
      <endpoint address="http://localhost:64172/DocumentGenerator.svc" binding="webHttpBinding" contract="IDocumentGenerator" name="WebHttpBinding_IDocumentGenerator" />
    </client>
</system.serviceModel>

接下来,我使用Apache JMeter将Soap-XML/RPC Request发送到URL http://localhost:64172/DocumentGenerator.svc,并且所有小于65KB的请求都会访问IIS Express Server,但是一旦请求变大,请求甚至没有命中服务器。

我已经尝试了4-5小时的不同选项,但无法解决这个问题。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

JMeter没有限制。

这是您需要更改的IIS默认限制,请参阅:

答案 1 :(得分:0)

binding标记

中添加以下内容
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />

您的绑定标记会是这样的

<binding
    maxBufferPoolSize="2147483647"
    maxReceivedMessageSize="2147483647"
    maxBufferSize="2147483647" transferMode="Streamed">
   <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>