Iis ServerManager构造函数在测试环境中崩溃

Iis ServerManager构造函数在测试环境中崩溃,iis,asp.net-mvc-4,servermanager,Iis,Asp.net Mvc 4,Servermanager,我正在用MVC4构建一个控件应用程序,遇到了一个非常恼人的问题。当我在本地调试项目时,它运行良好。但是,当我将项目部署到测试服务器(Windows server 2008 R2)时,以下行中断: ServerManager manager = new ServerManager("%windir%\\system32\\inetsrv\\config\\applicationhost.config"); 非常感谢您的帮助 堆栈跟踪: [ArgumentNullException: Value

我正在用MVC4构建一个控件应用程序,遇到了一个非常恼人的问题。当我在本地调试项目时,它运行良好。但是,当我将项目部署到测试服务器(Windows server 2008 R2)时,以下行中断:

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
[ArgumentNullException:值不能为null。
参数名称:类型]
System.Activator.CreateInstance(类型,布尔非公共)+14156918
System.Activator.CreateInstance(类型)+11
Microsoft.Web.Administration.ConfigurationManager..cctor()+96
[TypeInitializationException:'Microsoft.Web.Administration.ConfigurationManager'的类型初始值设定项引发异常。]
Microsoft.Web.Administration.ServerManager..ctor(字符串应用程序HostConfigurationPath)+51
..HomeController.cs:26中的..HomeController.ApplicationPools()
lambda_方法(闭包、控制器基、对象[])+79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext ControllerContext,IDictionary 2参数)+261
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor,IDictionary`2参数)+39
System.Web.Mvc.Async.c__显示类42.b__41()+34
System.Web.Mvc.Async.c__显示类39.b__33()+124
System.Web.Mvc.Async.c__DisplayClass4f.b__49()+837307
System.Web.Mvc.Async.c__显示类37.b__36(IAsyncResult asyncResult)+15
System.Web.Mvc.Async.c__DisplayClass2a.b__20()+33
System.Web.Mvc.Async.c__显示类25.b__22(IAsyncResult asyncResult)+837892
System.Web.Mvc.c_uuudisplayClassId.b_uuu18(IAsyncResult asyncResult)+28
System.Web.Mvc.Async.c_uuuudisplayClass4.b_uuuu3(IAsyncResult ar)+15
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+65
System.Web.Mvc.Async.c_uuuudisplayClass4.b_uuuu3(IAsyncResult ar)+15
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+51
System.Web.Mvc.c_uuudisplayClass8.b_uuu3(IAsyncResult asyncResult)+42
System.Web.Mvc.Async.c_uuuudisplayClass4.b_uuuu3(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步骤,布尔值&同步完成)+288

结果是引用了错误的Microsoft.Web.Administration版本。正确的版本是7.0.0.0。7.9.0.0在某种程度上是针对IIS Express的,这解释了为什么它在我的开发环境中工作。

我遇到了这个问题,尽管Visual Studio中DLL的属性声明为“7.0.0.0”,但我在记事本中打开了csproj文件,看到它是7.9.0.0。谢谢你的回答,这本可以帮我省下几个小时,只要试着找出哪里出了问题!