ASP.Net Core 1.0 RC2 : What are LAUNCHER_PATH and LAUNCHER_ARGS mentioned in web.config?

前端 未结 4 1694
名媛妹妹
名媛妹妹 2020-12-03 00:41

There are breaking changes in ASP.NET 5 RC2 release:

  • It is rebranded to ASP.NET Core 1.0 (ASP.NET 5 is dead)
  • Good bye dnvm and dnu<
相关标签:
4条回答
  • 2020-12-03 01:19

    This is part of web.config in VS:

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

    And this is on the server after publishing:

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

    In this example %LAUNCHER_PATH% was replaced by dotnet, and %LAUNCHER_ARGS% by application name with .dll extension

    0 讨论(0)
  • 2020-12-03 01:27

    The %LAUNCHER_PATH% and %LAUNCHER_ARGS% are used by VS. publish-iis tool (if configured) will override them when you publish your application.

    0 讨论(0)
  • 2020-12-03 01:31

    From github IISSample (thank you @Pawel and Luke), here are the value possibilities:

    <!-- 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"/>
    

    After several hours dealing with them, I found there are two web.configs that we need to deal with: src\ProjectName\wwwroot\web.config and src\ProjectName\web.config . If you dont have the latter, VS2015 publish will generate one for you with %LAUNCHER_PATH% and %LAUNCHER_ARGS% by default.

    To have the project run and debuggable locally under VS2015 via IISExpress, both web.config need to have the default value below. Replacing LAUNCHER_PATH and LAUNCHER_ARGS to something else causes VS2015 to hang indefinitely.

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

    However, upon deploying to IIS (I am using 8.5 on WinServer 2012 R2), the value on src\ProjectName\web.config must be replaced with the following. If configured, the dotnet publish-iis command suppose to do the replacement for you (see below).

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

    If you are migrating from RC1, change the http bound directory as well to Project root folder, not wwwroot. Example: from C:\inetpub\ProjectName\wwwroot to C:\inetpub\ProjectName.

    To configure publish-iis to do automatic replacement, add this snippet to your project.json: (Thank you @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%"
      }
    

    The IISIntegration tool segment converts these Launcher variables to the appropriate deployment values. Without it, you will get the following error:

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

    I am using RC2 Toolkit Preview 1.

    0 讨论(0)
  • 2020-12-03 01:31

    Thanks for the help guys, I was using a template (https://github.com/MarkPieszak/aspnetcore-angular2-universal) and the command

    dotnet publish
    

    made a folder under

    bin/Debug/netcoreapp1.1/publish
    

    Setting this path as the root directory of the site made it work!

    0 讨论(0)
提交回复
热议问题