2012-04-19 1 views
0

글쎄, 나는 그것을 호출해야하는 IIS라는 것을 알고 있습니다. 어쨌든; 특정 확장명의 파일을 문서 라이브러리에서 클릭 할 때 특수 문자열을 반환해야하는 Sharepoint 솔루션이 있습니다. 해당 web.config 파일에서 Sharepoint 2010이 내 사용자 지정 HttpHandler의 ProcessRequest를 호출하지 않습니다.

나는이 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)을 넣었으므로 다시 생성자 만 디버그 출력에 따라 호출됩니다.

내가 생각할 수있는 유일한 것은 정말 처음으로 핸들러를 이동하려고하는 것입니다 7.5.7600

셰어 포인트 2010 재단

답변

1

resourceType은 = "파일"을 밝혀 Web.config의에서 처리기 태그에

문제였다. 제거하거나 "지정되지 않음"으로 설정하십시오.

그건 이미 언급했는데, 불행하게도 이전에 발견하지 못했던 here입니다.

0

을 IIS.

그렇지 않으면 실제로 동작을 재정의하려는 대신 SharePoint와 통합하는 것이 더 나을 수 있습니다. 이 경우 달성하고자하는 것에 대해 별도의 질문을 게시해야합니다.