質問

FogbugzのBugzScoutを使用して、未処理のアプリケーション例外をFogbugzオンデマンドアカウントに自動的に送信しようとしています。私はそれのためのラッパークラスを作成しました、そして、すべてはちょうどグルーヴィーであるように見えます-私の箱で。認証を必要とするプロキシの背後で、本番環境で同じコードをテストすると、問題しかありませんでした。

プロキシで認証するためにBugzScoutコードを変更しました。Google検索で提案されたさまざまな方法を試したところ、機能するものが見つかりました。しかし、今私は<!> quot;接続が積極的に拒否されました<!> quot; 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;
    }

URLが正しく、ケースが適切に記入されている-これは確認済みです。

編集:追加情報。

  • Fogbugz on Demandの使用。
  • FogBugz.netコードを完全に使用し、これらの追加のみ
       WebProxy proxy = new WebProxy();
       proxy.UseDefaultCredentials = true;            
       client.Proxy = proxy;
役に立ちましたか?

解決

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();

他のヒント

fogbugzUrlはHTTP基本認証を使用していますか? SSL(オンデマンドでホストされていますか)

接続が拒否されたというメッセージは、実際にはFogBugzではなく、Webサーバー自体から送信されます。

HTTPステータスコードを投稿できますか?

FogBugz On Demandを使用している場合の注意点の1つは、https URLではなくhttps:// URLを使用する必要があることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top