HTML5 / jQuery应用程序中的超时问题

时间:2015-10-16 20:22:28

标签: jquery sql wcf clustered-index webhttpbinding

我正在.NET 4.0中开发HTML5 / jQuery应用程序。该应用程序用于使用WCF Rest服务( webHttp )上载excel文件。上传的文件保存在SQL Server放置区中,然后SSIS处理它们。

对于较小的文件(几KB),没有问题。但是,当我尝试上传大小超过2 MB (最多5 MB)的文件时,我看到jQuery Error,文件无法上传。请再试一次

问题是文件正在SQL Drop Zone中保存成功(我可以在那里看到上传成功),但由于ETL过程花费大量时间(大约5-10分钟) jQuery抛出错误而不等待来自ETL的响应(在30秒内)

这是我的web.config看起来像:

        <webHttpBinding>     
             <binding name="webBinding" maxBufferSize="2147483647"
             maxBufferPoolSize="2147483647"
             maxReceivedMessageSize="2147483647"
             transferMode="Streamed"
             sendTimeout="00:05:00">
                    <readerQuotas  maxDepth="2147483647"
                     maxStringContentLength="2147483647"
                     maxArrayLength="2147483647"
                     maxBytesPerRead="2147483647"
                     maxNameTableCharCount="2147483647"/>
         </binding>
                   <security mode="Transport"></security>
       </webHttpBinding>

有没有办法可以解决这个问题,所以我的应用程序会等到ETL得到响应(通过WCF服务)?

修改

一直在解决这个问题,看起来错误即将在30秒后出现,无论我在web.config文件中应用的设置如上所述。

那么有没有办法增加此超时以避免错误?

           $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "/DemoService.svc/FileUpload", timeout: 0, 
            data: obj,
            processData: false,
            contentType: false,
            success: function (response) {
    //
            },
            error: function (Result) {
                $("#error").html("Unable to upload. Please try again!!!").removeClass("hide");
            }
        });

1 个答案:

答案 0 :(得分:0)

原来问题是SQL连接超时,默认为30秒,然后数据库表设计出现问题(群集)。