2012-09-13 1 views
9

MVC 4에서 제어 응용 프로그램을 빌드 중이며 실제로 문제가 발생했습니다. 프로젝트를 로컬에서 디버깅 할 때 제대로 작동합니다. 내가 테스트 서버에 프로젝트를 배포 할 때, (윈도우 서버 2008 R2는) 다음 줄 바꿈 :ServerManager 생성자가 테스트 환경에서 충돌 함

ServerManager manager = new ServerManager("%windir%\\system32\\inetsrv\\config\\applicationhost.config"); 

어떤 도움이 아주 많이 감사합니다!

스택 추적 :

[ArgumentNullException: Value cannot be null. 
Parameter name: type] 
    System.Activator.CreateInstance(Type type, Boolean nonPublic) +14156918 
    System.Activator.CreateInstance(Type type) +11 
    Microsoft.Web.Administration.ConfigurationManager..cctor() +96 

[TypeInitializationException: The type initializer for 'Microsoft.Web.Administration.ConfigurationManager' threw an exception.] 
    Microsoft.Web.Administration.ServerManager..ctor(String applicationHostConfigurationPath) +51 
    ..HomeController.ApplicationPools() in ..HomeController.cs:26 
    lambda_method(Closure , ControllerBase , Object[]) +79 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 parameters) +261 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39 
    System.Web.Mvc.Async.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41() +34 
    System.Web.Mvc.Async.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33() +124 
    System.Web.Mvc.Async.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49() +837307 
    System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeActionMethodWithFilters>b__36(IAsyncResult asyncResult) +15 
    System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +33 
    System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +837892 
    System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +28 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +65 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +51 
    System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +42 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +51 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288 

답변

17

이 Microsoft.Web.Administration의 잘못된 버전이 참조 된 것으로 밝혀졌다. 올바른 버전은 7.0.0.0입니다. 7.9.0.0은 어떻게 든 내 dev 환경에서 작동하는 이유를 설명하는 IIS Express 용입니다.

+2

Visual Studio에서 DLL의 속성이 "7.0.0.0"으로 표시된 경우에도 메모장에 csproj 파일을 열어서 7.9.0.0으로 표시됩니다. – jwanagel

+0

답변을 주셔서 감사합니다. 그러면 시간이 절약되어서 무엇이 잘못되었는지 파악할 수 있습니다. – Alex