2012-04-19 61 views
0

那麼,我知道它是應該調用它的IIS。無論如何;我有一個Sharepoint解決方案,它應該在文檔庫上單擊具有特定擴展名的文件時返回特殊字符串。Sharepoint 2010不會調用我的自定義HttpHandler的ProcessRequest

在相應的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的基礎

回答

1

原來

= resourceType爲 「文件」

在web.config中處理程序標籤是問題。將其刪除或將其設置爲「未指定」。

也就是說已經提到here,不幸的是,我沒有之前發現。

0

我能想到的唯一的事情就是請嘗試移動處理器是真正的第一個。

否則,它可以更好地其實與SharePoint整合,而不是試圖重寫其行爲。在這種情況下,您可能應該針對您想要實現的內容發佈單獨的問題。

相關問題