Domanda

Dopo aver migrato TeamCity da un server a un altro e anche passando a Visual Studio 2013, la nostra build non riesce quando si utilizza MSDeploy per spingere un pacchetto .ZIP costruito TC a IIS.

Il pool di applicazioni che stai cercando di utilizzare ha la proprietà "ManagedRuntimeversion" impostata su "V4.0". Questa applicazione richiede 'v4.5'

Questo è uno strano errore poiché il mio server IIS ha installato .NET 4.5 ed è stato felicemente in esecuzione e distribuito per settimane e un pool di applicazioni 4.0 eseguirà un'app target 4.5.

Sfortunatamente, le acque sono confuse dalle modifiche a TC e VS (2013), quindi ciò di cui non posso essere sicuro del problema.

Nota: il nostro server TC ha solo Visual Studio 2012, dal momento che sono su MSDN e ho ottenuto l'accesso anticipato al 2013. Questo potrebbe essere il colpevole, ma non rende il problema meno strano.

È stato utile?

Soluzione

Preferirei non il controllo della versione di runtime .NET disabilitato (con IgnodedeployManageDRuntimeSvera), ma invece implicita impostare la versione di runtime tramite DeployManageDRuntimeSion:

<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>

Alcuni ulteriori dettagli: http://techblog.dologin.com/2013/11/deploying-45-projects-with-webdeploy.html

Altri suggerimenti

Apri i tuoi .csproj file e imposta il seguente elemento:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

Aggiungendolo appena sopra questo elemento aiuta la leggibilità:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

Complimenti a https://stackoverflow.com/users/1769923/abhishikt-n-jain Per rispondere a questa impostazione di configurazione poco conosciuta qui:

MSBUILD distribuisce fallimento dopo l'aggiornamento a .NET 4.5

Se qualcuno lo sa perché Questo accade, non esitate ad aggiungere una risposta.

Aggiornare

Ignora i miei commenti qui sotto. Mentre mi ha superato il schieramento, ho ottenuto un 503 Service Unavailable Quando ho effettivamente provato a eseguire l'app Web. Ho indicato questa modifica impostando il managedRuntimeVersion Proprietà di ritorno a v4.0 e ha aggiunto il IgnoreDeployManagedRuntimeVersion al mio progetto. Quindi la distribuzione è riuscita e l'app ha funzionato. Attutire...


Questo è successo a me dopo aver installato .NET Framework 4.5.1 su una macchina SP1 R2 Server 2008 di Windows 2008 (come parte dell'aggiornamento di PowerShell).

L'interfaccia utente IIS su Windows Server 2008 non dà la possibilità di impostare il managedRuntimeVersion Proprietà a V4.5 anche dopo l'installazione di quella versione. Tuttavia, questo può essere fatto sulla riga di comando usando il appcmd Utilità come mostra la risposta di @3Boysdad.

appcmd è l'equivalente della riga di comando della gestione di siti IIS, app, AppPools, ecc. Si trova a %systemroot%\system32\inetsrv\appcmd.exe Ma non è sul percorso come spiega il seguente link:

http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe#howtouse

Sono dell'opinione che modifica il tuo progetto (tramite il IgnoreDeployManagedRuntimeVersion o DeployManagedRuntimeVersion Proprietà) è non ottimale. Il pool di applicazioni dovrebbe essere impostato per utilizzare V4.5 e l'unico modo per farlo su Windows Server 2008 è utilizzare il appcmd utilità. @3Boysdad La risposta dovrebbe essere la risposta accettata.

Ho trovato questa gemma mentre cacciava questo stesso problema.

appcmd set apppool /apppool.name: <your app pool> /managedRuntimeVersion:v4.5

Questo dovrà essere eseguito nella directory System32 Inetsrv.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top