0

好吧,我知道应该调用它的是 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 基金会

4

2 回答 2

1

原来

资源类型="文件"

web.config 中的处理程序标记是问题所在。删除它或将其设置为“未指定”。

这已经在这里提到了,不幸的是,我之前没有发现。

于 2012-04-20T08:50:11.563 回答
0

我唯一能想到的就是尝试让你的处理程序真正成为第一个。

否则,最好与 SharePoint 实际集成,而不是尝试覆盖其行为。在这种情况下,您可能应该针对您想要实现的目标发布单独的问题。

于 2012-04-19T16:41:08.777 回答