我有一个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小时的不同选项,但无法解决这个问题。
感谢任何帮助。
答案 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>