首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebResponse动态“有时”崩溃

WebResponse动态“有时”崩溃
EN

Stack Overflow用户
提问于 2011-10-24 16:25:49
回答 1查看 254关注 0票数 0

我有一个foreach和一个"If",当条件为真时,我做一个WebResponse来在服务器中发布我的项目。

有时,代码会运行两个o多个项,但其他情况下会出现以下错误:

远程服务器返回一个错误:(407)代理身份验证。

守则:

代码语言:javascript
复制
WebClient client = new WebClient();

                string authInfo = "admin:geoserver";
                string address = "http://xxxxxxxx:8080/geoserver/rest/workspaces/";
                client.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(authInfo));



                WebRequest request = WebRequest.Create(address);

                request.ContentType = "text/xml";
                request.Method = "POST";

                request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(authInfo));

                byte[] bret = Encoding.GetEncoding("UTF-8").GetBytes("<workspace><name>" + nameWS + "</name></workspace>");



                Stream reqstr = request.GetRequestStream();
                reqstr.Write(bret, 0, bret.Length);
                reqstr.Close();


                try
                {
                    WebResponse response = request.GetResponse();

                    response.Close();

                }

我的环境是C# Visual 2010

EN

回答 1

Stack Overflow用户

发布于 2011-10-24 17:31:41

你多久叫一次?正如其他人所建议的那样,服务器可能受到DOS的保护,而您的请求就是这样。例如,用一个使用块立即释放所有一次性对象也是很有价值的。我们曾经有过一些问题,因为在我们的网络中,有太多的连接可以打开到我们的web服务器。您可以将代码调整为如下所示:

代码语言:javascript
复制
using(var client = new WebClient())
{
    string authInfo = "admin:geoserver";
    string address = "http://xxxxxxxx:8080/geoserver/rest/workspaces/";
    client.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(authInfo));

    var request = WebRequest.Create(address);

    request.ContentType = "text/xml";
    request.Method = "POST";

    request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(authInfo));

    byte[] bret = Encoding.GetEncoding("UTF-8").GetBytes("<workspace><name>" + nameWS + "</name></workspace>");

    using (var reqstr = request.GetRequestStream())
    {
        reqstr.Write(bret, 0, bret.Length);
    }

    try
    {
        using (var response = request.GetResponse())
        {
            // your code here...
        }

    }
    catch (Exception exc)
    {
        System.Diagnostics.Debug.WriteLine(exc.Message);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7878746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档