Hallo zusammen,
versuche nun seit Tagen mein Projekt unter einem IIS Server unter Windows Server 2019 zum laufen zu bringen.
Als Zielframwork habe ich im Visual Studio .net Core 3.1 eingestellt
Da ich eine 32Bit DLL verwende habe ich im IIS Application Pool 32bit auf true gesetzt
Unter Visual Studio mit dem IIS Express läuft es, wenn ich es jetzt aber veröffentliche und auf dem Server starten möchte bekomme ich folgende Meldung im Browser:> Fehlermeldung:
HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure
Im Logfile sehe ich folgende Meldung:> Fehlermeldung:
Unhandled exception. System.BadImageFormatException: Could not load file or assembly 'C:\inetpub\Test_Services\test.dll'. An attempt was made to load a program with an incorrect format.
File name: 'C:\inetpub\Test_Services\test.dll'
Meine csproject Datei sieht folgendermaßen aus:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
<Platforms>AnyCPU;x86</Platforms>
<UserSecretsId>f3492274-f87e-402b-ad37-821f94564fcd</UserSecretsId>
<StartupObject>test.Program</StartupObject>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<Prefer32Bit>true</Prefer32Bit>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
<Prefer32Bit>true</Prefer32Bit>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
<Prefer32Bit>true</Prefer32Bit>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Cors" />
<!-- <PackageReference Include="Microsoft.AspNetCore.All" Version="3.1.27" /> -->
<PackageReference Include="System.Private.ServiceModel" Version="4.9.0" />
<PackageReference Include="System.ServiceModel.Duplex" Version="4.9.0" />
<PackageReference Include="System.ServiceModel.Http" Version="4.9.0" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.9.0" />
<PackageReference Include="System.ServiceModel.Security" Version="4.9.0" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services" />
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties properties_4launchsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
</Project>
Meine Web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\test.dll" stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
<!--<system.webServer>
<aspNetCore processPath="dotnet" arguments=".\test.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified"/>
</handlers>
<handlerSettings>
<handlerSetting name="stackSize" value="2097152"/>
</handlerSettings>
</aspNetCore>
</system.webServer>-->
<!-- <location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\test.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location> -->
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding openTimeout="00:10:00" closeTimeout="00:10:00" sendTimeout="00:10:00" receiveTimeout="00:10:00"/>
</wsHttpBinding>
</bindings>
</system.serviceModel>
<system.net>
<!-- erstmal herausnhemen zum test<defaultProxy>
<proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
</defaultProxy> -->
</system.net>
</configuration>
Auf dem Sever sind folgende .net Versionen installiert:
dotnet --list-runtimes
Microsoft.AspNetCore.App 3.1.27 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.27 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.27 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Hallo Bronstein,
Da ich eine 32Bit DLL verwende habe ich im IIS Application Pool 32bit auf true gesetzt
...> Fehlermeldung:
HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure
Das ASP.NET Core Hosting Bundle, in dem das ASP.NET Core Module (ANCM) enthalten ist, muss auch als 32bit-Variante vorhanden / installiert werden.
Ich tippe mal dass du die 64bit-Variante installiert hast, denn darauf deuten die Fehlermeldungen hin.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo,
das hat leider nichts gebracht, habe jetzt unter folgendem Link:
https://dotnet.microsoft.com/en-us/download/dotnet/3.1
Die 4 Dinge installiert in der 32bit Version:
Im Anhang auch ein Bild was alles .net auf dem Server installiert ist, fehlt da noch was?
Hallo Bronstein,
hast du auch das Hosting Bundle (x86) installiert?
Sehe das nicht im Screenshot. Ohne dem, wegen ASP.NET Core Module v2, kann der IIS nicht mit ASP.NET Core kommunizieren.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo,
ja denke schon zumindest wenn ich es erneut installieren möchte kommt die Meldung ob ich reparieren möchte
Im Anhang auch mal was alles unter 64 und 32 Bit installiert ist:
Denke von der Installation sollte es passen oder fehlt da noch was?
Hallo Bronstein,
was mich wunder -- bei der Fehlermeldung -- warum Out-Of-Process steht, da ist nirgends konfiguriert (od. ist das der Standard, weiß ich nicht).
In der Projektdatei (csproj) und der web.config sollten die HostingModels ident sein.
D.h. entweder
<!-- csproj -->
<PropertyGroup>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>
<!-- web.config -->
<aspNetCore processPath ="dotnet"
arguments =".\test.dll"
hostingModel="outofprocess">
<!-- ... ->
oder
<!-- csproj -->
<PropertyGroup>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
<!-- web.config -->
<aspNetCore processPath ="dotnet"
arguments =".\test.dll"
hostingModel="inprocess">
<!-- ... ->
Probier dies einmal explizit zu setzen und schau dir die Fehlermeldung -- die hoffentlich nicht mehr kommt 😉 -- genau an.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure kann prinzipiell durch vieles ausgelöst werden
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code