ASP.NET mvc 中的超时错误

Timeout error in ASP.NET mvc

我遇到了一个奇怪的问题,我正在 运行 Quartz 作业中从 2 个不同的 URL 获取数据,但是其中一个出现超时错误,另一个工作正常。我得到的内部错误异常是 'The operation has timed out'.

一件更有趣的事情是我在我的本地系统上没有收到这个错误,在我的本地,两个作业都正确地获取数据,但在服务器上一个失败。

我也和我从中获取数据的网站的团队谈过,他们告诉我他们对两个 url 的配置是相同的,所以他们最后没有问题。

我在尝试通过在线阅读解决此问题时对我的 webconfig 文件进行了一些更改,但还没有成功。

我在 web.config

的 appSettings 标签中添加了这一行
<add key="SqlCommandTimeOut" value="10000000" />

我的连接字符串如下所示:

<add name="xyzDBEntities" connectionString="metadata=res://*/xyzDB.csdl|res://*/xyzDBEntities.ssdl|res://*/xyzDBEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SQL1234.xyzsite.com;initial catalog=xyzDB;User Id=xyzDB_admin;Password=xyzpassword;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

如果有人能帮我解决这个问题就太好了。如果需要更多详细信息,请告诉我。谢谢!

扩展 WebClient class 并通过将超时设置为 1 分钟覆盖 GetWebRequest() 解决了我的问题。

public class CustomWebClient : WebClient{
    protected override WebRequest GetWebRequest(Uri address){
        HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
        request.Timeout = 60000; //1 minute timeout
        return request;
    }
}