gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 07:17:09 28 4
gpt4 key购买 nike

breaking changes在 ASP.NET 5 RC2 版本中:

  • 已更名为 ASP.NET Core 1.0 ( ASP.NET 5 is dead )
  • 再见 dnvmdnu 命令行,它们已被 dotnet 取代
  • 各种必要的代码更改

我正在尝试部署由dotnetpublish生成的文件。文件结构与 RC1 不同。我在事件查看器中看到以下错误:

无法使用命令行“%LAUNCHER_PATH% %LAUNCHER_ARGS%”启动进程,错误代码 =“0x80070002”。

这些环境变量在web.config中提到,它取自official rc1-to-rc2文档。

<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>

%LAUNCHER_PATH%%LAUNCHER_ARGS% 的正确值是什么?这些值在其 github publish document 中未提及。 。

最佳答案

来自github IISSample (谢谢@Pawel 和 Luke),以下是值(value)的可能性:

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

经过几个小时的处理,我发现我们需要处理两个 web.configs:src\ProjectName\wwwroot\web.configsrc\ProjectName\web.config 。如果您没有后者,VS2015 发布将默认为您生成一个 %LAUNCHER_PATH%%LAUNCHER_ARGS%

要让项目通过 IISExpress 在 VS2015 下本地运行和调试,两个 web.config 都需要具有以下默认值。将 LAUNCHER_PATH 和 LAUNCHER_ARGS 替换为其他内容会导致 VS2015 无限期挂起。

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

但是,在部署到 IIS 时(我在 WinServer 2012 R2 上使用 8.5),src\ProjectName\web.config 上的值必须替换为以下内容。如果已配置,dotnetpublish-iis 命令会为您执行替换(见下文)。

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

如果您从 RC1 迁移,change http 绑定(bind)目录以及项目根文件夹,而不是 wwwroot。示例:从 C:\inetpub\ProjectName\wwwrootC:\inetpub\ProjectName

configure publish-iis 要进行自动替换,请将此代码段添加到您的project.json:(谢谢@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%"
}

IISIntegration 工具段将这些启动器变量转换为适当的部署值。如果没有它,您将收到以下错误:

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

我正在使用 RC2 Toolkit Preview 1。

关于ASP.Net Core 1.0 RC2 : What are LAUNCHER_PATH and LAUNCHER_ARGS mentioned in web. 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37463186/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com