这里有Mono专家吗?
当我向另一台服务器发出请求时,它会抛出一个带有错误的执行"请求超时"我无法向该网站提出更多请求。我正在使用带有SmarthThreadPool的ServiceStack v3,我已经将MONO_THREADS_PER_CPU配置为100,但仍然保持工作一段时间然后就会发生这种情况。我认为线程没有正确处理,所以有时候我无法创建更多请求。
这是在Ubuntu 14.04上运行的单声道版本4.0.1,我也读到在alpha版本4.2中他们使用ThreadPool修复了很多错误,但我还没有在生产中测试它。有什么建议或意见吗?我知道应该知道什么,而且我因此而仍然处于停机状态。
许多,非常感谢提前:)
以下是我使用的代码:
private static string GetRawJson(string requestUrl, string ipAddress) {
ServicePointManager.DefaultConnectionLimit = 1000;
ServicePointManager.UseNagleAlgorithm = false;
ServicePointManager.Expect100Continue = false;
var requestResponse = string.Empty;
var request = (HttpWebRequest) WebRequest.Create(requestUrl);
request.Proxy = null;
request.KeepAlive = true;
request.Timeout = 800;
request.Headers.Add("X-Forwarded-For", ipAddress);
using (var response = request.GetResponse()) {
using (var stream = response.GetResponseStream()) {
if (stream != null) {
using (var reader = new StreamReader(stream)) {
requestResponse = reader.ReadToEnd();
reader.Close();
}
stream.Close();
}
}
response.Close();
}
return requestResponse;
}