我正在.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");
}
});
答案 0 :(得分:0)
原来问题是SQL连接超时,默认为30秒,然后数据库表设计出现问题(群集)。