gpt4 book ai didi

c# - 我的代码如何确定它是否在 IIS 中运行?

转载 作者:可可西里 更新时间:2023-11-01 07:53:12 24 4
gpt4 key购买 nike

我的 C# 代码可能在 IIS(目前是 7.5,但我不想依赖于特定版本)或其他地方的 MVC3 应用程序中运行。

看起来知道代码在 IIS 下运行的一种方法是 to check the current process name ,但这种方法取决于硬编码文件名字符串。

是否有一些编程方式可以检测我的代码是否在 IIS 下运行而不依赖于 IIS 版本?

最佳答案

看看 HostingEnvironment类,尤其是 IsHosted方法。

这会告诉您您是否被托管在 ApplicationManager 中,它会告诉您是否由 ASP.NET 托管。

严格来说,它不会告诉你你在 IIS 下运行,但我认为这实际上更能满足你的需求。

示例代码:

// Returns the file-system path for a given path.
public static string GetMappedPath(string path)
{
if (HostingEnvironment.IsHosted)
{
if (!Path.IsPathRooted(path))
{
// We are about to call MapPath, so need to ensure that
// we do not pass an absolute path.
//
// We use HostingEnvironment.MapPath, rather than
// Server.MapPath, to allow this method to be used
// in application startup. Server.MapPath calls
// HostingEnvironment.MapPath internally.
return HostingEnvironment.MapPath(path);
}
else {
return path;
}
}
else
{
throw new ApplicationException (
"I'm not in an ASP.NET hosted environment :-(");
}
}

关于c# - 我的代码如何确定它是否在 IIS 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10223799/

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