ServerManager constructor crashes in test environment
Asked Answered
A

1

10

I am building a control application in MVC 4 and have encountered a really annoying problem. When I debug the project locally it works fine. However, when I deploy the project to the test server (Windows Server 2008 R2) the following line breaks:

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

Any help is very much appreciated!

Stack trace:

[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
Adrien answered 13/9, 2012 at 11:50 Comment(0)
A
17

It turned out that the wrong version of Microsoft.Web.Administration was referenced. The correct version is 7.0.0.0. 7.9.0.0 is somehow meant for IIS Express which explains why it worked in my dev environment.

Adrien answered 13/9, 2012 at 15:35 Comment(2)
I ran into this, and even though the properties for the DLL in Visual Studio stated "7.0.0.0" I opened the csproj file in Notepad and saw that it had it as 7.9.0.0.Elson
Thanks for the answer, this would've saved me hours just try to figure out what went wrong!Erigena

© 2022 - 2024 — McMap. All rights reserved.