我的问题的全部目的是能够在不使用 Visual Studio 中的 f5 并且不附加调试器的情况下运行我的站点。
事实证明,解决方案很简单。
您可以在控制台终端中的 Kestrel 中运行它。
只需打开终端或命令提示符到您的项目根目录并输入:
dotnet run
这将对您的项目运行 kestrel 并告诉您它在哪个端口上。然后,您可以在浏览器中点击http://localhost:5000 (或使用端口)。
更新:您也可以在整个应用程序中终止对 IIS Express 的依赖,并使 f5 在 Kestrel 中运行。
去做这个:
- 右键单击您的项目并转到属性
- 单击调试选项卡
- 单击配置文件下拉列表旁边的新建
- 称之为红隼开发
- 将启动类型更改为“项目”
- 将应用程序参数设置为“dotnet run”
- 为“ASPNETCORE_ENVIRONMENT”添加环境变量
- 将值设置为“开发”
- 为“ASPNETCORE_URLS”添加环境变量
- 给它一个值“ http://localhost:8080 ”或您希望它运行的任何 url/端口。
对“Kestrel Production”重复上述选项,但将 ASPNETCORE_ENVIRONMENT 设置为“Production”
ASPNETCORE_ENVIRONMENT 用于处理您的 json 配置转换。
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
那么,如果您希望 appSettings.json 用于开发(本地)、暂存和生产,那么您将创建 3 个 appSettings.json 文件
appSettings.json
appSettings.Development.json
appSettings.Staging.json
appSettings.Production.json
然后使用上面的 option: true config 选项将 .Staging.Json 等文件设为可选。
因此,在 appSettings.json 中,您在所有环境中都拥有相同的一切。
然后在 appSettings.Development.json 中,您可能只有在本地运行时才需要的东西。
等等等等
您为每个环境创建一个配置文件,因此如果您运行“Kestrel Development”,它会使用 appSettings.Development.Json
如果您运行“Kestrel Staging”,它将使用 appSettings.Staging.Json。
如果您运行“Kestrel Production”,它将使用 appSettings.Production.json。
这也会影响 tagHelper 在 MVC 视图中的工作方式,例如
<environment names="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/css/site.css" />
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
<link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>
在该 html 中,如果您正在运行“Kestrel Development”,则输出环境标记内的 html 用于开发。
如果您正在运行 Kestrel 生产,则输出环境标记内用于暂存、生产的 html。