12

VS2010とIIS5を搭載したXP(SP3)マシンで開発しています。

同じサイトの2つのバージョンがあります。最初の製品版をリリースしたので、コードを新しいディレクトリツリーにフォークし、IISで新しいツリーを指すように新しい仮想ディレクトリを設定しました。プロジェクトは、VSのサーバーではなくIISで実行するように設定されています。メインサイトはMVC2ベースのプロジェクトです。

私の問題は、Visual Studio 2010でF5キーを押して新しいバージョンのデバッグを開始すると、「Webサーバーでデバッグを開始できません。Webサーバーが要求されたリソースを見つけることができませんでした」というメッセージが表示されることです。私は昨日の大部分を、それが見つけられなかったものを探していたリソースを見つけようとして過ごしました。これは、「アプリケーションの開始」に到達する前に発生します。私はついにWebログを調べることを考えましたが、F5キーを押すたびに、Webログに/debugattach.aspxに対するDEBUG要求が示され、戻りコードは404(見つかりません)であることがわかりました。古いバージョンで同じシーケンスを実行すると、同じことが表示されますが、最初は401コードで、次に200コードでリクエストが繰り返されます。

私の最初の考えは、VSは「debugattach.aspx」ファイルを書き出してからそれを呼び出す必要があり、ディレクトリへの書き込み権限がない可能性があるということでしたが、私が知る限り、それは可能です。

私はdebugattach.aspxをグーグルで検索しましたが、返される記事の最初の数ページはすべて、主にIIS7とVS2005でのロックアップとタイムアウトについて言及しているようです。この状況には何も当てはまらないようです。

動作する古いバージョンと動作しない新しいバージョンの違いを見ると、仮想ディレクトリのIISセットアップと、コード自体のweb.configだけが異なります。しかし、私は2つのサイトを並べて調べましたが、この動作の原因となる違いは見つかりませんでした。

誰かが私と共有できる手がかりを持っていますか?または、debugattach.aspxが正確に何であるか、何をするか、DEBUG HTTPリクエストが何をするか、および/またはVSがそれらをどのように使用するかについてのドキュメントを誰かに教えてもらえますか?

前もって感謝します。

4

9 に答える 9

5

この古い投稿に基づいて、DebugAttach.aspx は HTTP ハンドラー System.Web.HttpDebugHandler によって実装されます。ただし、IIS7 でこのハンドラーが参照されているのを実際には見たことがありません。この実装は、将来的に他のハンドラーにマージされた可能性があります。確かにある種のハンドラーです。動作している場合、ログに 200 (成功) メッセージが表示されます。

私はこれと同じ問題を2つの異なる方法で抱えていました.F5デバッグは、デバッグハンドラに到達する問題のためにVS2010で失敗しました. IIS Failed Request Tracing ログを使用して、IIS モジュールが干渉しているインスタンスを確認できました。あるケースでは、UrlScan.dll が DEBUG 動詞をブロックしていました。別の例では、HTTP から HTTPS へのリダイレクトにより、デバッグ ハンドラーが 302 を返していました。どちらの場合も、VS は同様のダイアログを表示しました。

とにかく、ここでの秘訣は、この URL への DEBUG 要求をブロックする方法を見つけ出すことのようです。

于 2013-09-05T17:30:37.313 に答える
4

私の場合、Windows 10 で VS2017 を使用して空の Web アプリケーションを作成しました。[プロジェクトの設定] -> [Web] で ASP.NET Debugger のチェックボックスをオフにすると、問題はなくなりました。その前に、私は問題を解決するためにそこにあるほとんどすべての提案を試みました。

于 2018-03-19T12:58:41.633 に答える
0

私もこれに遭遇しました。ローカル IIS サーバーの [要求のフィルタリング] で [一覧にないファイル名拡張子を許可する]設定をオフにしていました(他の環境でのセキュリティを強化した設定と一致させるため)。.aspx がブロックされていたことが判明しました。設定をオンに戻し、デバッガーでアタッチできました。そのため、オフに戻し、サイト レベルで .aspx の許容範囲を追加して、デバッガーでもう一度アタッチできるようにしました。

デバッガーが debugattach.aspx を探して、このエラーで失敗する理由にも興味があります。特に、私のアプリは MVC であり、.aspx を提供する必要がないためです。

于 2013-01-28T23:13:54.317 に答える
-2

<compilation debug="true">Web.configに追加します。

于 2010-12-17T14:00:42.943 に答える