プロキシの背後からのBugzScout.netの難しさ
質問
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;
- 両方の https://oursite.fogbugz.com/scoutsubmit.aspに接続しようとするとエラーが発生するおよび http://oursite.fogbugz.com//scoutsubmit.asp (1つはポート443、もう1つはポート80と言うことを除きます)
- Web認証については何も知らないので、どの種類を使用しているかを伝えることはできません。どこを見るべきかを教えていただければ、喜んでお答えします。
解決
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を使用する必要があることです。