在代理后使用BugzScout.net遇到困难

4
我正在尝试使用Fogbugz的BugzScout自动将未处理的应用程序异常提交到我的Fogbugz on demand帐户。我已经为此编写了一个包装类,一切看起来都很顺利 - 在我的电脑上。但在生产环境中,在需要身份验证的代理后面测试相同的代码时,我遇到了许多问题。
我开始修改BugzScout代码以使其与代理进行身份验证,并尝试了通过Google搜索提供的许多不同方法,找到了一个可行的方法!但现在我从Fogbugz本身得到了“连接被主动拒绝”的错误,我不知道该怎么办。
以下是BugzScout通过.net WebClient连接以提交新案例的代码,其中包含我对我们代理进行处理的修改。我做了什么会导致Fogbugz拒绝我的请求?为了方便阅读,我已从该过程中删除了所有非Web客户端相关的代码。
public string Submit(){         
        WebClient client = new WebClient();
        WebProxy proxy = new WebProxy();
        proxy.UseDefaultCredentials = true;            
        client.Proxy = proxy;            
        Byte[] response = client.DownloadData(fogBugzUrl);
        string responseText = System.Text.Encoding.UTF8.GetString(response);
        return (responseText == "") ? this.defaultMsg : responseText;
    }

网址正确且大小写填写正确-已经验证过。

编辑:附加信息。

  • 使用Fogbugz on Demand。
  • 完全使用FogBugz.net代码,只添加了以下内容:
       WebProxy proxy = new WebProxy();
       proxy.UseDefaultCredentials = true;            
       client.Proxy = proxy;

你解决这个问题了吗?给我发电子邮件,地址是firstname@fogcreek。 - Michael Pryor
2个回答

3

从Fogbugz得到了修复方案-这是适当的网络代码,可以通过代理身份验证,并且不会与Bugzscout错误身份验证。

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
WebRequest request = WebRequest.Create(fogBugzUrl);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;     
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();

1
我实际需要的唯一一行是 request.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials; - jimconstable

0
你的fogbugzUrl是否使用HTTP基本身份验证?它是否使用SSL(托管在On Demand上)?
连接被拒绝的消息来自于Web服务器本身,而不是FogBugz。
你能发布HTTP状态码吗?
如果你正在使用FogBugz On Demand,请注意必须使用https:// URL(而不是http URL)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接