46 votes

ASP.Net Core 1.0 RC2: Qu'est-ce que LAUNCHER_PATH et LAUNCHER_ARGS sont mentionnés dans web.config?

Il y a des modifications importantes dans ASP.NET 5 la RC2:

  • Il est rebaptisée à ASP.NET Core 1.0 (ASP.NET 5 est mort)
  • Good bye dnvm et dnu de la ligne de commande, ils sont remplacés par dotnet
  • Diverses modifications de code nécessaire

Je suis en train de déployer les fichiers générés par dotnet publish. La structure des fichiers est différente de la RC1. Je vois le message d'erreur suivant dans l'Observateur d'Événements:

Failed to start process with commandline '%LAUNCHER_PATH% %LAUNCHER_ARGS%', Error Code = '0x80070002'.

Ces variables d'environnement sont mentionnés dans l' web.config, qui est pris de l' officiel de la rc1-à-rc2 document.

<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*"
              modules="AspNetCoreModule" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"
        stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"
        forwardWindowsAuthToken="false"/>
  </system.webServer>
</configuration>

Quelles sont les valeurs correctes pour %LAUNCHER_PATH% et %LAUNCHER_ARGS% ? Ces valeurs ne sont pas mentionnées dans leur github publier le document.

55voto

Jeson Martajaya Points 434

À partir de github IISSample (merci @Pawel et Luc), ici sont la valeur de possibilités:

<!-- This set of attributes are used for launching the sample using IISExpress via Visual Studio tooling -->
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>

<!-- This set of attributes are used for launching the sample for full CLR (net451) without Visual Studio tooling -->
<aspNetCore processPath=".\IISSample.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>

<!-- This set of attributes are used for launching the sample for Core CLR (netcoreapp1.0) without Visual Studio tooling -->
<aspNetCore processPath="dotnet" arguments=".\IISSample.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>

Après plusieurs heures de traiter avec eux, j'ai trouvé il y a deux web.les configs que nous devons affronter: src\ProjectName\wwwroot\web.config et src\ProjectName\web.config . Si vous n'avez pas la dernière, VS2015 publier va générer pour vous avec %LAUNCHER_PATH% et %LAUNCHER_ARGS% par défaut.

Avoir le projet de fonctionner et debuggable localement sous VS2015 via IISExpress, web.config besoin d'avoir la valeur par défaut ci-dessous. Remplacement de LAUNCHER_PATH et LAUNCHER_ARGS à quelque chose d'autre cause VS2015 pour accrocher indéfiniment.

<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>

Cependant, sur le déploiement de services internet (je suis à l'aide de 8.5 sur WinServer 2012 R2), la valeur de src\ProjectName\web.config doit être remplacé par le suivant. Si configuré, l' dotnet publish-iis commande suppose de faire le remplacement pour vous (voir ci-dessous).

<aspNetCore processPath="dotnet" arguments=".\ProjectName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>

Si vous migrez de la RC1, changer le http lié répertoire à la racine du Projet de dossier, pas wwwroot. Exemple: C:\inetpub\ProjectName\wwwroot de C:\inetpub\ProjectName.

Pour configurer publish-iis faire un remplacement automatique, ajouter cet extrait de votre projet.json: (Merci @Pawel)

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final"
    }
  },
  "scripts": {
    "postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
  }

Le IISIntegration outil segment convertit ces Lanceur de variables pour le déploiement approprié des valeurs. Sans elle, vous obtiendrez l'erreur suivante:

No executable found matching command "dotnet-publish-iis"

Je suis à l'aide RC2 Trousse d'outils de l'Aperçu 1.

9voto

Pawel Points 12600

Les %LAUNCHER_PATH% et %LAUNCHER_ARGS% sont utilisés par VS. L'outil publish-iis (s'il est configuré) les remplacera lors de la publication de votre application.

9voto

assassin1909 Points 94

Cela fait partie de web.config dans VS:

 <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"
    stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"
    forwardWindowsAuthToken="false"/>
 

Et ceci est sur le serveur après la publication:

 <aspNetCore processPath="dotnet" arguments=".\AppName.dll" 
    stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" 
    forwardWindowsAuthToken="false" />
 

Dans cet exemple, %LAUNCHER_PATH% été remplacé par dotnet et %LAUNCHER_ARGS% par application name avec .dll extension

1voto

Adam Pine Points 150

Merci pour l'aide les gars, j'utilisais un modèle ( https://github.com/MarkPieszak/aspnetcore-angular2-universal ) et la commande

 dotnet publish
 

fait un dossier sous

 bin/Debug/netcoreapp1.1/publish
 

La définition de ce chemin en tant que répertoire racine du site a fonctionné!

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