gpt4 book ai didi

c# - HostingEnvironment 不包含 IsHosted 的定义

转载 作者:行者123 更新时间:2023-11-30 15:17:44 25 4
gpt4 key购买 nike

我正在开发 C# 应用程序,我需要查明我是否在 IIS 下。我在 SO 上看到了一些关于使用 HostingEnvironment.IsHosted 方法的问题。不幸的是,如果我写这样的东西:

if (HostingEnvironment.IsHosted)
{
// on IIS
}
else
{
// not on IIS
}

编译错误:

HostingEnvironment does not contain a definition for IsHosted

我正在使用:Microsoft.AspNetCore.Hosting;Microsoft.AspNetCore.Hosting.Internal;

编辑

按照建议尝试使用 System.Web.Hosting.HostingEnvironment.IsHosted 但它没有用

enter image description here

最佳答案

这可能会有所帮助。您可以像这样获取 IHostingEnvironment:

var hostingEnvironment =(IHostingEnvironment)options.ApplicationServices.GetService(typeof(IHostingEnvironment))

if(hostingEnvironment.IsProduction())
{
// do work
}

环境在您的 launchSettings.json 中设置。在您的启动配置文件下:

"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "/api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},

部署时默认值为“生产”。

编辑:我实际上遗漏了一部分。您需要将代码封装在 .UseKestrel(options => {/* environment code */})

关于c# - HostingEnvironment 不包含 IsHosted 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45714568/

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