• C# Webservice 解决在运行配置文件中指定的扩展时出现异常。 ---> System.Web.HttpException: 超过了最大请求长度问


    摘自: http://blog.csdn.net/gulijiang2008/article/details/4482993

    请在服务器端配置

    方法一:

    在通过WebService处理大数据量数据时出现如下错误:

    System.Web.Services.Protocols.SoapException: 在运行配置文件中指定的扩展时出现异常。 ---> System.Web.HttpException: 超过了最大请求长度。
    at System.Web.HttpRequest.GetEntireRawContent()
    at System.Web.HttpRequest.get_InputStream()
    at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
    --- 内部异常堆栈跟踪的结尾 ---
    at System.Web.Services.Protocols.SoapServerProtocol.Initialize()
    at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)

    解决方法:是因为传入的参数大于系统默认配置的值,asp.net web service默认的请求长度是4M。修改配置可以在web.config中重新设置,如下:
    <configuration>
    <system.web>

    <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />

    </system.web>
    </configuration>

    方法二:

    <system.web>
    <!-- 指示 ASP.NET 支持的最大文件上载大小。
    该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。
    指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。
    此处改为40M大小的文件上传限制。
    -->
    <httpRuntime maxRequestLength = "40960" useFullyQualifiedRedirectUrl="true"/>
    </system.web>

    -------------------------------------------------------------------------------------------

    超时问题解决

    1. 首先修改服务端配置

      WebService服务所在站点为服务端,它提供了服务,打开这个站点的web.config,添加下面的配置:

          <httpRuntime  executionTimeout="300000" />

      <compilation defaultLanguage="c#" debug="false">

      executionTimeout="300000" 单位是“毫秒”,这里配置的是5分钟。

      debug="false" 要关闭调试。

      如果web.config中本来就有这两个配置,修改一下就行了。如果没有,就添加上去,完整的结构顺序如下:

      <configuration>

        <system.web> 

              <httpRuntime  executionTimeout="300000" />

              <compilation defaultLanguage="c#" debug="false">

            </compilation>

        </system.web>

      </configuration>

    2. 2

       修改调用程序客户端的配置

      YourService. YourService model = new YourService. YourService ();

      model.Timeout = 300000; // 单位是毫秒,设置时间,否则时间超限

      这里给服务对象model设置超时时间Timeout为300000毫秒。

  • 相关阅读:
    【机器学习】机器学习12个关键经验教训
    【机器学习】24个终极项目提升您的机器学习知识和技能
    2018-12-21-WPF-弹出-popup-里面的-TextBox-无法输入汉字
    2019-10-31-C#-dotnet-获取整个局域网的-ip-地址
    2018-11-26-win10-uwp-获取窗口的坐标和宽度高度
    2019-5-21-dotnet-core-使用-CoreRT-将程序编译为-Native-程序
    2019-5-21-Roslyn-使用-Directory.Build.props-管理多个项目配置
    2019-2-26-SublimeText-快速打开当前文件的文件夹
    2019-2-18-VisualStudio-给项目添加特殊的-Nuget-的链接
    2019-8-31-dotnet-如何在-Mock-模拟-Func-判断调用次数
  • 原文地址:https://www.cnblogs.com/wuyifu/p/4184114.html
Copyright © 2020-2023  润新知