動作する既存の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でサポートされていないものですか、それとも他の問題ですか?