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="data source=SQL1234.xyzsite.com;initial catalog=xyzDB;User Id=xyzDB_admin;Password=xyzpassword;App=EntityFramework"" 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;
}
}
我遇到了一个奇怪的问题,我正在 运行 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="data source=SQL1234.xyzsite.com;initial catalog=xyzDB;User Id=xyzDB_admin;Password=xyzpassword;App=EntityFramework"" 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;
}
}