启动IIS Express以运行ASP.NET Core Apps

问题描述 投票:1回答:1

我希望通过使用命令行从IIS Express启动它来运行我的ASP.NET核心应用程序。

我偶然发现了this文章

因此实际上Visual Studio在启动IIS Express时会默默添加两个环境变量,因此可以注入与ASP.NET Core相关的位。

LAUNCHER_ARGS:-debug -p“C:\ Program Files \ dotnet \ dotnet.exe”-a“exec \”C:\ Users \ lextm \ documents \ visual studio 2017 \ Projects \ WebApplication2 \ WebApplication2 \ bin \ Debug \ netcoreapp1。 0 \ WebApplication2.dll \“” - pidFile“C:\ Users \ lextm \ AppData \ Local \ Temp \ 2 \ tmpFD6D.tmp”-wd“C:\ Users \ lextm \ documents \ visual studio 2017 \ Projects \ WebApplication2 \ WebApplication2”

-pidFile “C:\Users\lextm\AppData\Local\Temp\2\tmpFD6D.tmp”中的tmp文件总是可以更改。如何添加LAUNCHER_ARGS作为环境变量,即使tmp文件发生变化也能使其工作?

让我知道是否有更简单的方法来启动IIS Express以使用命令行或PowerShell脚本运行ASP.NET Core Apps。

asp.net-core iis-express
1个回答
4
投票

您正在寻找[System.IO.Path]::GetTempFileName()方法。它在文件系统上创建空的临时文件并返回其唯一名称。

我目前正在使用以下PowerShell脚本来运行我的.NET Core 2.0应用程序:

$env:LAUNCHER_ARGS = "-p ""<path to dotnet.exe>"" -a ""exec \""<path to webapp main dll>\"""" -pidFile $([System.IO.Path]::GetTempFileName()) -wd ""<path to webapp root folder>"" -pr <project name>"
$env:LAUNCHER_PATH = "<path to VSIISExeLauncher.exe>"
& "<path to iisexpress.exe>" /config:"<path to applicationhost.config>" /site:"<webapp name>"

占位符(尖括号内的文本)必须填充相应的值。您可以通过从Visual Studio运行项目并使用Process Explorer检查iisexpress.exe进程的环境变量来查找它们,如上面所示链接中所示。

© www.soinside.com 2019 - 2024. All rights reserved.