2011-10-10 3 views
6

WebActivator를 사용하여 패키지를 사용하는 여러 웹 응용 프로그램이 있습니다. IIS 7.5 Express를 사용하는 로컬 컴퓨터에서 릴리스 또는 디버그 구성에서 테스트를해도 문제가 없습니다. 그러나 IIS 7.5가 설치된 프로덕션 컴퓨터에서는 WebActivator가 실제로 실행되지 않으므로 모든 모듈이로드되지 않으므로 코드를 다시 Global.asax.cs 파일에 추가해야합니다.Webactivator가 IIS 7에서 실행되지 않습니다.

Google 검색을 시작하고 검색하고 StackOverflow를 검색했지만 비슷한 문제가있는 사람을 만나지 않았습니다. 실행을 허용하도록 명시 적으로 구성해야하는 것이 있습니까?

수정 - Windows에 로깅하는 활성기의 빠른 샘플을 추가했습니다. Global.asax.cs 파일에 추가 될 때 함수 내용은 프로덕션 서버에서 제대로 실행되지만 활성화 기에서 기록되지 않습니다.

using System.Web.Mvc; 
using System; 

[assembly: WebActivator.PreApplicationStartMethod(typeof(Admin.App_Start.WebActivatorTestStart), "Start")] 

namespace Admin.App_Start 
{ 
    public static class WebActivatorTestStart { 
     public static void Start() { 

      System.Diagnostics.EventLog log = new System.Diagnostics.EventLog(); 
      log.Source = ".NET Runtime"; 
      log.WriteEntry("WebActivator Start", System.Diagnostics.EventLogEntryType.Information); 

     } 
    } 
} 
+0

프로덕션 컴퓨터에 ASP.NET 4가 설치되어 있습니까? – counsellorben

+0

예, IIS 7.5/IIS Express 7.5를 제외하고 개발자와 제작 상자 사이의 모든 버전이 동일합니다. 응용 프로그램 풀은 .Net 4, 통합 파이프 라인으로 설정됩니다. – Leniency

+0

WebActivator가 실행되지 않습니까? 어쩌면 그것은 당신이 실패한 모듈을 적재하기 위해 무엇을 하던가? 실패한 WebActivator인지 확인할 수 있도록 WebActivator가 로그에 기록하도록 계측 할 수 있습니까? –

답변

0

글쎄, 내가 무엇을 해결했는지 말할 수는 없지만 지금은 효과가 있습니다.

약간의 역사 - 몇 가지 공통 라이브러리를 사용하여 다양한 대형 응용 프로그램을 관리합니다. 나는 일반적인 웹 라이브러리를 가지고 있으며, 그 곳에서 Ninject와 WebActivator를 사용하여 IOC 설정을했습니다. 이 기본 라이브러리에는 App_Start 폴더가 있습니다. 어쩌면 이것이 이유 였을까요? 던노. WebActivator가이 설정을 사용하지 못하게하여 NinjectHttpApplication을 사용하여 등록 및 시작 작업을 처리했습니다. 그러나 기본 라이브러리에는 여전히 WebActivator (App_Start 폴더 없음)에 대한 종속성이 있습니다.

그래서 지금 나는 지난 몇 개월 동안 많은 코드와 코드를 정리하여 응용 프로그램과 기본 라이브러리의 일부를 리펙토링하고 있습니다. 하나의 단계는 모든 IoC를 실제 웹 응용 프로그램으로 이동하여 기본 라이브러리를 모 놀리 식으로 만드는 것이 었습니다. 기본 라이브러리는 더 이상 WebActivator에 종속되지 않습니다.

이제 작동합니다. 기본 라이브러리에 추가로 50 만 가지의 작은 변경 사항이 있기 때문에 더 체계적이지 않은 것에 대해 다른 사람들에게 사과드립니다.

관련 문제