我在MVC 4中构建控件应用程序,遇到了一个非常烦人的问题.当我在本地调试项目工作正常.但是,当我将项目部署到测试服务器(
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
解决方法
原来,引用了Microsoft.Web.Administration的错误版本.正确的版本是7.0.0.0. 7.9.0.0在某种程度上意味着IIS Express,这解释了为什么它在我的开发环境中工作.