70 votes

IIS ne parvient pas à exécuter le site ASP.NET Core - Erreur HTTP 502.5

Nous avons un Windows 2012 R2 machine. J'ai eu un existant ASP.NET site de Base qui était un travail publié ASP.NET site de Base en cours d'exécution.

Cependant, lorsque j'ai publié sur le site à nouveau aujourd'hui, un mois plus tard, après j'ai fait des modifications, je ne peux pas accéder au site plus et obtenez l'erreur suivante dans mon navigateur

Erreur HTTP 502.5 - Échec du Processus

Pour plus d'informations, visitez: http://go.microsoft.com/fwlink/?LinkID=808681

Si je me connecte sur le serveur et cliquez sur le fichier exe dans mon déployé répertoire, il ouvre une invite de commande et affiche mon site sur le port 5000. Si je accéder au site http://localhost:5000 il fonctionne parfaitement, le problème est donc de faire avec IIS et non pas le site lui-même.

Si je me connecte sur le serveur, je peux voir le suivant dans Windows EventViewer

enter image description here

Application de la MACHINE/WEBROOT/APPHOST/SITE WEB par DÉFAUT/Monsite " physique de la racine 'D:\Sites\MySite\' n'a pas pu démarrer le processus avec la ligne de commande '"%LAUNCHER_PATH%" %LAUNCHER_ARGS%', code d'erreur = '0x80070002 : 0.

Lorsque je visite le lien dans le message d'erreur de navigateur, il a mentionné la réinstallation de l' .net de Base d'Hébergement bundle que j'ai fait. Cependant le message d'erreur dans le navigateur est le même.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore requestTimeout="02:00:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
  </system.webServer>
</configuration>

Quand je regarde mon app dossier du journal d'un stdout fichier est créé pour chaque fois qu'il essaie d'accéder à ce site, mais à chaque fois qu'il est d'une taille de 0 ko et vider le contenu.

Pourquoi ne IIS refuser de travailler soudain, où il a travaillé précédente, mais l'application fonctionne si j'ai accès à l'exe compilé directement?

62voto

Camilo Terevinto Points 16984

Votre problème est un mauvais fichier web.config:

 <aspNetCore requestTimeout="02:00:00" 
     processPath="%LAUNCHER_PATH%" 
     arguments="%LAUNCHER_ARGS%" 
     stdoutLogEnabled="true" 
     stdoutLogFile=".\logs\stdout" 
     forwardWindowsAuthToken="false" />
 

Le chemin% LAUNCHER_PATH% n'existe pas sur votre système, il n'est même pas valide. Cela devrait être quelque chose comme:

 <aspNetCore requestTimeout="02:00:00" 
     processPath=".\yourAppName.exe" 
     arguments="somePossibleArgument" 
     stdoutLogEnabled="true" 
     stdoutLogFile=".\logs\stdout" 
     forwardWindowsAuthToken="false" />
 

Notez que le fichier web.config est complètement ignoré si l'application est lancée à partir de la ligne de commande. C'est pourquoi vous ne recevez pas l'erreur.

53voto

Akbar Badhusha Points 792

J'ai eu ce même problème, mon problème était IIS n'était pas en mesure d'obtenir le chemin d'accès à dotnet. J'ai pu résoudre ce problème en spécifiant le chemin d'accès au fichier dotnet.exe

 <configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="C:\Program Files\dotnet\dotnet.exe" arguments=".\your-project.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"/>
  </system.webServer>
</configuration>
 

14voto

David Gunderson Points 436

Mon problème est que le processus ne démarre pas en raison d'une défaillance de la séquence d'échappement dans mon appsettings.json le fichier.

Je suis en utilisant dotnet pour exécuter le publié le RÉSEAU Core 2 web api dll. Le problème a été révélé par l'ouverture d'une invite de commande et naviguer vers le répertoire où les fichiers du site sont situés. Une fois là-bas, j'ai exécuté la commande:

dotnet mySite.dll

(changement mySite.dll pour la dll principale de votre application. Aussi, assurez-vous que la version correcte de la .NET Core de Windows Server Hosting paquet est déjà installé).

En appuyant sur entrée, immédiatement écrasé de donner l'exacte des commentaires dans la fenêtre de la console de ce qui n'allait pas. C'est un excellent moyen pour vous aider à déterminer votre erreur de démarrage(s) si vous rencontrez des problèmes similaires.

1voto

M.Ob Points 1376

J'ai rencontré ce même problème quand j'ai déployé mon application. Il y avait plusieurs problèmes sur ma fin :)

Je suis passé par cette page très attentivement: ASP.NET Base: Publication sur IIS

Tout d'abord, je n'ai pas toutes les pièces de la .NET Core de Windows Server Hosting faisceau installé. J'ai fini par faire un fremework dépendant de déploiement au lieu d'un déploiement. Nous avons beaucoup d'applications et de ne pas vouloir/besoin de chacun sur leurs propres versions .net de base. Il y aurait beaucoup trop de versions de .net sur la boîte.

Aussi, notez que si votre admins effectué toutes les mises à jour/mises à niveau du serveur, ils pourraient avoir monté votre ASP.NET installation de Base (voir ASP.NET Core: Publication de IIS section dépannage)

Ensuite, j'ai dû fixer mon web.config... voici mon travail publié web.config: Je n'ai pas publier comme un *.exe, je n'ai *.dll (avis de mes arguments valeur). Aussi, mon processPath est réglé sur "dotnet".

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\DT.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
  </system.webServer>
</configuration>

Aussi, assurez-vous que votre projet.json options sont tous compatibles avec l'environnement de votre serveur (voir ASP.NET Core: Publication de IIS section dépannage)

Voici une copie de mon projet.json si ça peut aider:

{
  "version": "2.0.1.0",

  "dependencies": {
    "DT.Common": "2.*",
    "DT.Configuration": "2.*",
    "DT.Services": "2.*",
    "DT.Web.ViewModels": "2.*",
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.2",
    "Microsoft.AspNetCore.Authentication": "1.1.0",
    "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0",
    "Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.1.0",
    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.1.0-preview4-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Routing": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.1.0-preview4-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel.Https": "1.1.0",
    "Microsoft.AspNetCore.Session": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.1.0",
    "Microsoft.Extensions.Caching.SqlServer": "1.0.0",
    "Microsoft.Extensions.Configuration.Abstractions": "1.1.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.Graph": "1.1.1",
    "Microsoft.IdentityModel.Clients.ActiveDirectory": "3.13.6"
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.1.0-preview4-final",
      "imports": "portable-net45+win8+dotnet5.6"
    },
    "Microsoft.Extensions.Caching.SqlConfig.Tools": "1.1.0-preview4-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ],
      "dependencies": {
        "Microsoft.NETCore.App": {
          "version": "1.1.0",
          "type": "platform"
        }
      }
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "views/**/*.cshtml",
      "appsettings.json",
      "appsettings.*.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "gulp buildprod" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

1voto

J'ai eu le même problème avec Visual Studio transformer le web.le fichier de configuration et la modification de la processPath et des arguments. Comme il est indiqué sur le site de Microsoft , vous pouvez ajouter de l'exclusion dans le projet.csproj fichier:

<PropertyGroup>
  <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
</PropertyGroup>

Cela a pris soin de mon problème en changeant la valeur du chemin à publier, j'ai toujours des problème cependant avec Visual Studio changement sur son propre lors du débogage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X