如何配置发布以确保ASP.NET Core使用正确的进程路径

如何配置发布以确保ASP.NET Core使用正确的进程路径,asp.net,iis,asp.net-core,Asp.net,Iis,Asp.net Core,我有一个ASP.NET核心(v1.1)web应用程序。web.config包含以下行: <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" /> 建议这可能是为了防止黑客攻击系统路径变量而故意使用的安全功能。我尝试在源代码中

我有一个ASP.NET核心(v1.1)web应用程序。web.config包含以下行:

<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
建议这可能是为了防止黑客攻击系统路径变量而故意使用的安全功能。我尝试在源代码中更改web.config以明确设置该路径,但不幸的是,每次我在本地运行该站点时,该值都会更改回
%LAUNCHER\u path%


所以我的问题是,如何确保我发布的应用程序包含正确的进程路径?或者正确的问题是:我应该在部署web服务器上配置什么以确保它可以使用系统路径变量?

web.config不是您应该编辑的内容,甚至不需要关心ASP.NET核心应用程序。它的存在只是因为IIS需要它,只是为了启动应用程序。在这方面,无论如何,它的出版应该是完美的


如果
dotnet.exe
不在系统路径上,则运行时的安装可能存在一些问题,因为这应该自动发生。您可以重新安装运行时,也可以将
C:\Program Files\dotnet
部分手动添加到系统
PATH
环境变量中。

感谢您的响应,但是
C:\Program Files\dotnet
已经在系统
PATH
变量中。因此,我的最后一个问题是:“我应该在部署web服务器上配置什么以确保它可以使用系统路径变量”。这会不会是一件事?我的应用程序池用户对
C:\Program Files\dotnet
具有读取/执行权限……这与.NET Core或IIS没有任何关系。
PATH
环境变量是一个Windows对象。它只是使目录中引用的可执行文件在命令行上可用,而不必为它们添加完整路径的前缀。如果不起作用,首先,确保在系统环境变量中设置了
PATH
变量,而不是在用户环境变量中设置。其次,您可以尝试重新启动计算机,让Windows获取环境变量。谢谢,我已经尝试了所有这些。但你是对的,如果这是个问题,那么这不是一个问题。我问了一个关于服务器故障的问题,如果我得到答案,我会报告:确认服务器故障,这是一项安全措施。解决方案是从部署机制中删除web.config,并确保部署服务器具有配置为确保ASP.NET正确启动的完整路径的web.config。(参考号:)
<aspNetCore processPath="dotnet" arguments=".\MyProject.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />