Frage

Nach der Migration von Teamcity von einem Server auf einen anderen und auch zu Visual Studio 2013 schlägt unser Build mit MSDeploy ein, um ein TC-gebautes .zip-Paket auf IIS zu bringen.

Der Anwendungspool, den Sie verwenden möchten, hat die Eigenschaft "ManagedRuntimeVersion" auf "v4.0". Diese Anwendung erfordert 'v4.5'

Dies ist ein seltsamer Fehler, da mein IIS -Server .NET 4.5 installiert hat und seit Wochen glücklich ausgeführt und bereitgestellt wird, und ein 4.0 -Anwendungspool wird eine Ziel -App ausführen.

Leider sind die Gewässer durch die Änderungen an TC und VS (2013) verwirrt, was das Problem verursacht habe, kann ich nicht sicher sein.

Hinweis: Unser TC -Server hat nur Visual Studio 2012, da ich auf MSDN bin und einen frühen Zugriff auf 2013 erhalten habe. Dies könnte der Schuldige sein, macht das Problem jedoch nicht weniger seltsam.

War es hilfreich?

Lösung

Ich würde es vorziehen, dass .NET -Runtime -Versionen überhaupt nicht deaktiviert werden (mit ignoredEployManagedruntimeVersion), sondern implizite Set Runtime -Version über BereitsManagedruntimeVersion:

<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>

Einige weitere Details: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html

Andere Tipps

Öffne dein .csproj Datei und das folgende Element festlegen:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

Das Hinzufügen direkt über diesem Element hilft die Lesbarkeit:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

Ein großes Lob an https://stackoverflow.com/users/1769923/abhishikt-n-jain Zur Beantwortung dieser wenig bekannten Konfigurationseinstellung hier:

MSBUILD -Bereitstellung fehlerhaft nach dem Upgrade auf .NET 4.5

Wenn jemand weiß warum Dies passiert, bitte können Sie eine Antwort hinzufügen.

Aktualisieren

Ignorieren meine Kommentare unten. Während es mich am Einsatz überschritten hat, bekam ich eine 503 Service Unavailable Als ich tatsächlich versuchte, die Web -App auszuführen. Ich habe diese Änderung unterstützt, indem ich die festgelegt habe managedRuntimeVersion Eigenschaft zurück zu v4.0 und fügte das hinzu IgnoreDeployManagedRuntimeVersion zu meinem Projekt. Dann war der Bereitstellungsabschluss erfolgreich und die App funktionierte. Stumm...


Dies geschah mir, nachdem ich .NET Framework 4.5.1 auf einem Windows Server 2008 R2 SP1 -Gerät (im Rahmen des Upgrades PowerShell) installiert habe.

Die IIS -Benutzeroberfläche unter Windows Server 2008 gibt nicht die Möglichkeit, die Einstellung der Einstellung managedRuntimeVersion Eigenschaft zu v4.5 Auch nach der Installation dieser Version. Dies kann jedoch in der Befehlszeile verwendet werden appcmd Dienstprogramm als Antwort von @3boysdad zeigt.

appcmd ist das Befehlszeilen-Äquivalent zum Verwalten von IIS-Websites, Apps, Apppools usw. Es befindet sich bei %systemroot%\system32\inetsrv\appcmd.exe Aber es ist nicht auf dem Pfad, wie der folgende Link erklärt:

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

Ich bin der Meinung, dass das Ändern Ihres Projekts (über die IgnoreDeployManagedRuntimeVersion oder DeployManagedRuntimeVersion Eigenschaften) ist suboptimal. Der Anwendungspool sollte so eingestellt sein, dass V4.5 verwendet werden. Die einzige Möglichkeit, dies unter Windows Server 2008 zu tun, besteht darin, die zu verwenden appcmd Dienstprogramm. @3Boysdads Antwort sollte die akzeptierte Antwort sein.

Fand dieses Juwel, während er nach demselben Problem herum Jagd hat.

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

Dies muss in Ihrem system32 inetsrv -Verzeichnis ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top