【发布时间】:2015-10-16 20:22:27
【问题描述】:
我正在.NET 4.0 中开发一个 HTML5/jQuery 应用程序。该应用程序用于使用 WCF Rest 服务 (webHttp) 上传 excel 文件。上传的文件保存在 SQL Server 拖放区,然后由 SSIS 处理。
对于较小的文件(几 KB)没有问题。但是,当我尝试上传 大小超过 2 MB(最大 5 MB)的文件时,我看到了 jQuery 错误,即 无法上传文件。请重试。
问题是文件正在成功保存在 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 服务)获得响应?
编辑
一直在对问题进行故障排除,并且无论我在上面的 web.config 文件中应用什么设置,看起来 30 秒后都会出现错误。
那么有没有办法增加这个超时时间来避免错误呢?
$.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");
}
});
【问题讨论】:
标签: jquery sql wcf clustered-index webhttpbinding