기능을 개발할 때 SharePoint 2007 사이트의 Application_Start에 연결하는 좋은 방법이 있는지 궁금합니다. 사이트 루트에서 Global.asax 파일을 직접 편집 할 수 있다는 것을 알고 있지만이 기능을 사용하여 배포 할 수있는 방법이 있습니까?어떻게 SharePoint 2007 기능을 사이트의 Application_Start에 연결할 수 있습니까?
감사합니다.
기능을 개발할 때 SharePoint 2007 사이트의 Application_Start에 연결하는 좋은 방법이 있는지 궁금합니다. 사이트 루트에서 Global.asax 파일을 직접 편집 할 수 있다는 것을 알고 있지만이 기능을 사용하여 배포 할 수있는 방법이 있습니까?어떻게 SharePoint 2007 기능을 사이트의 Application_Start에 연결할 수 있습니까?
감사합니다.
이 실제로 가능하지만,이 Global.asax 파일을 포함하지 않습니다.
많은 Microsoft의 사례는 Global.asax를 통해 코드를 전달하는 방법을 보여 주지만 SharePoint와 관련하여 모범 사례가 아닙니다. 이상적으로 코드는 Feature로 패키징되어 WSP를 통해 배포되어야합니다 (이미 알고있는 것처럼).
핵심은 문제의 코드를 HttpModule (즉, IHttpModule 인터페이스를 구현하는 형식)으로 구현하고이를 SharePoint 응용 프로그램 서비스를 제공하는 ASP.NET 파이프 라인에 연결하는 데 있습니다. 대략적으로 말해서 다음 단계가 있습니다.
HttpModule 개발에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/ms227673.aspx을 참조하십시오. SPWebConfigModification 유형에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx을 참조하십시오.
결과 : 응용 프로그램 시작을 처리 할 수 있고 기능을 통해 배포 할 수있는 클래스입니다. 수동 파일 해킹이 필요하지 않습니다.
필자는 가장 최근에 SPHttpApplication이 시작될 때 콜백에 등록해야하는 사용자 지정 캐싱 공급자 (IVaryByCustomHandler)를 사용하여 여러 시나리오에서이를 성공적으로 사용했습니다.
질문이 조금 나이가 들지만, 이것이 도움이되기를 바랍니다.
내 직감은 가능하지 않다는 것입니다. Application_Start는 asp.net 엔진이 시작될 때 런타임에 의해 호출되므로 Global.asax를 수정하는 외부에서 처리기를 연결할 수있는 가능성이 거의 없습니다. 응용 프로그램을 중지/언로드하는 동안 생존해야하므로 훅은 선언적이어야하며 지속적이어야합니다. 따라서 global.asax에 작성해야한다면, 수정을 수행하기 위해 Feature EventReceiver를 작성할 수 있다고 생각합니다.
그렇다면 왜 그런지 자세히 설명해 주실 수 있습니까? 아마도 다른 각도의 공격이있을 수 있습니다. 비행 중에 global.asax를 수정하는 아이디어는 나를 아프게합니다. 그것은 좋을 수 없다.
Oisin