2

動作する既存のasp.netWebサイトがあります。私(F5)がデバッグすると、動作します。ただし、私はサイトの新しいIHttpHandlerに取り組んでいます。セクションをweb.configに追加するとすぐ<system.webServer><handler></handler></system.webServer>に、VisualStudioは次のエラーでF5デバッグを拒否します。

Webサーバーでデバッグを開始できません。Webサーバーは要求されたリソースを見つけることができませんでした。

ハンドラーを配置した状態で、プロセスにアタッチすると、プロセスに正常にアタッチできます(そして、このSystem.Diagnostics.Debugger.Break();行を使用して、ハンドラーのコードをステップ実行できます)。また、ハンドラーを別のWebサイトに追加して、この問題を再現することができました。

私の環境:.NET 4.0、Visual Studio 2012、Windows7で統合モードのローカルIISを使用。

ここに貼り付けるコードをサニタイズしようとしているときに、ボイラープレートを除くハンドラー内のすべてをコメントアウトすることになりましたが、それでも問題は発生します。コードスニペットは次のとおりです。

ハンドラークラス:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MySvc
{
    public class MyServiceHandler : IHttpHandler
    {
        public bool IsReusable
        {
            get { return false; }
        }

        public void ProcessRequest(HttpContext context)
        {
//#if DEBUG
//            System.Diagnostics.Debugger.Break();
//#endif
        }
    }
}

およびweb.config:

<?xml version="1.0"?>
<configuration>
    <appSettings>
        <clear/>
        <add key="A1" value="sanitized"/>
        <add key="A2" value="sanitized"/>
    </appSettings>
    <connectionStrings>
        <clear/>
        <add name="MyDatabase" connectionString="sanitized"/>
    </connectionStrings>
    <system.web>
        <compilation debug="true"/>
        <httpRuntime maxRequestLength="1048576" executionTimeout="3600"/>
        <sessionState mode="SQLServer" cookieless="false" timeout="5" allowCustomSqlDatabase="true" cookieName="My.Session"
                      sqlConnectionString="sanitized" />
        <machineKey
            validationKey="sanitized"
            decryptionKey="sanitized"
            validation="sanitized" decryption="sanitized" />
    </system.web>
    <system.webServer>
        <handlers>
            <clear />
            <add name="MyHandler" path="*.bwsvc" verb="*" type="MySvc.MyServiceHandler, MySvc" />
        </handlers>
    </system.webServer>
</configuration>

Webサーバーが要求されたリソースを見つけることができませんでしたと同じ行に沿って他の多くの記事を読みました。この状況には当てはまらないようで、問題を引き起こすハンドラーについては何も言及されていません。

ハンドラーに何かが足りないのですか、それともVisual Studioでサポートされていないものですか、それとも他の問題ですか?

4

1 に答える 1

0

問題を見つけました。<clear />セクション内の<handlers>が問題の原因であることが判明しました。その行が削除されるとすぐに、デバッガーは再び機能します(そして他の多くのことも)。

私のアプリケーションプールは統合パイプラインモードであるため、ハンドラーセクションは実際には* .aspxなどのコアなものを処理するものを指定するサーバー設定を継承します。したがって、それをクリアすると、IISは何をすべきかわからなかったということです。のアプリケーションのすべて。

于 2012-12-20T22:22:47.220 に答える