【问题标题】:Sharepoint 2010 does not invoke ProcessRequest of my custom HttpHandlerSharepoint 2010 不调用我的自定义 HttpHandler 的 ProcessRequest
【发布时间】:2012-05-01 05:09:50
【问题描述】:

好吧,我知道应该调用它的是 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 中所做的事情不相关,因为当我调试处理程序时,我可以看到调用了处理程序的构造函数,但没有调用'处理请求'。除了调试器,我还添加了调试行(File.AppendAll),再次根据调试输出调用构造函数。

IIS 7.5.7600

Sharepoint 2010 基金会

【问题讨论】:

    标签: c# sharepoint iis-7.5 httphandler


    【解决方案1】:

    结果

    resourceType="文件"

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

    这已经提到了here,很遗憾,我之前没发现。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-05-16
        • 1970-01-01
        • 2012-01-20
        • 1970-01-01
        • 1970-01-01
        • 2011-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多