1

私のソリューションには 2 つの ASP.NET プロジェクトがあり、デバッグを開始するときに異なる localhost ポートで実行されます。サイト A に汎用ハンドラーがあり、サイト B によって呼び出されます。

String url = "http://localhost:1234/UrlOnSiteA.ashx";
WebClient client = New WebClient();
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.OpenRead(url);

OpenRead 呼び出しは 500 エラーで例外をスローしますが、その理由はわかりません。エラーメッセージは次のとおりです。

System.Net.WebException: リモート サーバーがエラーを返しました: (500) 内部サーバー エラー。

他の情報:

  • ハンドラー コードの最初の行のブレークポイントはヒットしません。
  • URL がブラウザーで使用されると、ハンドラーは適​​切に実行されます (ブレークポイントに到達します)。
  • .NET 2.0 サイトを実行する Visual Studio 2008 Professional。

設定の問題だと思います。何か案は?

4

1 に答える 1

1

例外の原因を突き止めて、これを最初に診断します。WebException の Response プロパティを見て、返された HTML を読み取ります。手がかりはありますか?(実際のエラー応答を表示するには、web.config でカスタム エラーを無効にする必要がある場合があります。)

同じ応答情報を取得する別の方法は、Fiddler を使用し、WebClient 呼び出しのプロキシを Fiddler プロキシ アドレスに設定することです。次に、フィドラーを使用して応答 HTML を表示できます。

少し異なるアプローチは、Visual Studio の例外設定を変更して、WebException がスローされるたびにデバッガーに割り込むことです。これは、[デバッグ...例外...] ダイアログ ボックスから実行できます。

于 2009-09-17T18:04:45.787 に答える