运行配置文件中指定的扩展时出现异常

异常日志信息:
运行配置文件中指定的扩展时出现异常。 ---> 超过了最大请求长度。
System.Web.Services.Protocols.SoapException: 运行配置文件中指定的扩展时出现异常。 ---> 超过了最大请求长度。
在 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)


问题原因:
据说是Asp.Net默认是4M,防止Ddos攻击。


解决方法1:
针对单个项目,只需修改Web.config就可以了,如下: 
<configuration>
<system.web>
<httpRuntime maxRequestLength = "40960"  executionTimeout="3600" />
</system.web>
</configuration>
限制最大长度是40M,超时时间1小时。




解决方法2
找到:C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG/machine.config文件(版本及系统不同,目录稍有差异),找到“maxRequestLength="4096"”这行,将其中的4096换成较大的数值,单位是KB。


后记
httpRuntime 是配置asp.net http运行时设置,以确定如何处理对asp.net应用程序的请求。 
executionTimeout:表示允许执行请求的最大时间限制,单位为秒 
maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB),最大值:2097151。 
useFullyQualifiedRedirectUrl:表示指示客户端重定向是否是完全限定的(采用 "http://server/path" 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。如果为 True,则所有不是完全限定的重定向都将自动转换为完全限定的格式。false 是默认选项。 
minFreeThreads:表示指定允许执行新请求的自由线程的最小数目。ASP.NET 为要求附加线程来完成其处理的请求而使指定数目的线程保持自由状态。默认值为 8。 
minLocalRequestFreeThreads:表示ASP.NET 保持的允许执行新本地请求的自由线程的最小数目。该线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。这避免了可能的因递归重新进入 Web 服务器而导致的死锁。 
appRequestQueueLimit:表示ASP.NET 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。 
enableVersionHeader:表示指定 ASP.NET 是否应输出版本标头。Microsoft Visual Studio 2005 使用该属性来确定当前使用的 ASP.NET 版本。对于生产环境,该属性不是必需的,可以禁用.

posted @ 2012-02-26 09:33  spring3  阅读(1167)  评论(0编辑  收藏  举报