嗯,我知道应该调用它的是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 Foundation
答案 0 :(得分:1)
答案 1 :(得分:0)
我唯一能想到的是尝试将处理程序移动到第一个处理程序。
否则,实际上与SharePoint集成可能会更好,而不是试图覆盖其行为。在这种情况下,您可能应该针对您想要实现的目标发布单独的问题。