HttpWebRequest给出"请求超时"在单声道

时间:2015-09-02 02:19:05

标签: c# ubuntu mono servicestack threadpool

这里有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;
    }

0 个答案:

没有答案