2012-09-13 7 views
9

Sto creando un'applicazione di controllo in MVC 4 e ho riscontrato un problema davvero fastidioso. Quando eseguo il debug del progetto localmente, funziona bene. Tuttavia, quando ho distribuire il progetto al server di prova (Windows Server 2008 R2) la seguente riga si rompe:Il costruttore di ServerManager si arresta in modo anomalo nell'ambiente di prova

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

Qualsiasi aiuto è molto apprezzato!

traccia stack:

[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 

risposta

17

Si è scoperto che la versione sbagliata di Microsoft.Web.Administration è stato fatto riferimento. La versione corretta è 7.0.0.0. 7.9.0.0 è in qualche modo pensato per IIS Express che spiega perché ha funzionato nel mio ambiente di sviluppo.

+2

Mi sono imbattuto in questo, e anche se le proprietà per la DLL in Visual Studio hanno dichiarato "7.0.0.0" ho aperto il file csproj nel Blocco note e ho visto che lo aveva come 7.9.0.0. – jwanagel

+0

Grazie per la risposta, questo mi avrebbe risparmiato ore solo per cercare di capire cosa è andato storto! – Alex

Problemi correlati