Сбой конструктора ServerManager в тестовой среде

Я создаю управляющее приложение в 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

person adamfinstorp    schedule 13.09.2012    source источник


Ответы (1)


Оказалось, что была указана неверная версия Microsoft.Web.Administration. Правильная версия 7.0.0.0. 7.9.0.0 каким-то образом предназначен для IIS Express, что объясняет, почему он работал в моей среде разработки.

person adamfinstorp    schedule 13.09.2012
comment
Я столкнулся с этим, и хотя в свойствах DLL в Visual Studio указано 7.0.0.0, я открыл файл csproj в Блокноте и увидел, что он имеет значение 7.9.0.0. - person jwanagel; 19.03.2013
comment
Спасибо за ответ, это сэкономило бы мне часы, просто попытайтесь понять, что пошло не так! - person Alex; 19.02.2016