Gia*_*ini 5 c# asp.net iis .net-core asp.net-core
我正在开发一个 C# 应用程序,我需要确定我是否在 IIS 下。我在 SO 上看到了一些关于使用该HostingEnvironment.IsHosted方法的问题。不幸的是,如果我写这样的东西:
if (HostingEnvironment.IsHosted)
{
// on IIS
}
else
{
// not on IIS
}
Run Code Online (Sandbox Code Playgroud)
我收到一个编译错误:
HostingEnvironment 不包含 IsHosted 的定义
我正在使用:
Microsoft.AspNetCore.Hosting;
Microsoft.AspNetCore.Hosting.Internal;
编辑
尝试System.Web.Hosting.HostingEnvironment.IsHosted按照建议使用,但没有用
这可能会有所帮助。IHostingEnvironment你可以这样获取:
var hostingEnvironment =(IHostingEnvironment)options.ApplicationServices.GetService(typeof(IHostingEnvironment))
if(hostingEnvironment.IsProduction())
{
// do work
}
Run Code Online (Sandbox Code Playgroud)
环境设置在您的launchSettings.json. 在您的启动配置文件下:
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "/api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
Run Code Online (Sandbox Code Playgroud)
部署时默认值为“生产”。
编辑:我实际上遗漏了一部分。您需要将代码封装在.UseKestrel(options => { /* environment code */ })
| 归档时间: |
|
| 查看次数: |
2155 次 |
| 最近记录: |