それを呼び出すはずの IIS であることはわかっています。ともかく; 特定の拡張子を持つファイルがドキュメント ライブラリでクリックされたときに特別な文字列を返すはずの SharePoint ソリューションがあります。
対応する web.config ファイルで、この HTTP ハンドラーを実行するために次のように記述しています。
<system.webServer>
<handlers>
...
<add name="MyFileHandler" path="*.bar" verb="*" type="Foo.Example.MyHandler, Foo.Example, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3b53a24010893ac2" resourceType="File" />
...
</handlers>
</system.webServer>
HttpHandler クラスは次のようなものです。
namespace Foo.Example
{
public class MyHandler : IHttpHandler
{
public MyHandler(){} //For breakpoint
public void ProcessRequest(HttpContext context)
{
//Do stuff and write to response.
}
public bool IsReusable
{
get { return false; }
}
}
}
Sharepoint で「.bar」拡張子のファイルを開こうとすると、404 が返されます。ハンドラをデバッグすると、ハンドラのコンストラクタが呼び出されているのに「ProcessRequest」が呼び出されていないことがわかるため、ProcessRequest で行うことは関係ありません。 . デバッガーに加えて、デバッグ行 (File.AppendAll) も配置しました。ここでも、デバッグ出力に従ってコンストラクターのみが呼び出されます。
IIS 7.5.7600
Sharepoint 2010 ファウンデーション