.NET代码如何知道它是否在Web服务器应用程序中运行?

前端之家收集整理的这篇文章主要介绍了.NET代码如何知道它是否在Web服务器应用程序中运行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个库代码,应该知道它是在Web服务器或独立应用程序服务器的上下文中执行的.

想到的显而易见的是检查应用程序配置文件名称,如果它是web.config – 那么这是一个Web服务器,否则 – 独立的应用程序服务器.

另一种方法是在shadow文件夹的路径中查找类似“Temporary ASP.NET files”的内容.

但我不喜欢这两个,因为它们看起来太脆弱和脆弱.有没有一种强有力的方法来做我想要的?

谢谢.

附:

可以定义一个专用的应用程序配置设置–IsWebServer,但我更不喜欢它.

编辑:

在寻找另一个问题的解决方案时,我想我解决了这个 – 细节是here

解决方法

为了解决另一个问题,我找到了一个很好的解决方案.
有一个私有方法System.Configuration.SettingsPropertyValue.IsHostedInAspnet,它完全符合我的需要.作为一个私有方法,我不想调用它(虽然我可以使用反射),但它的实现是微不足道的:
private bool IsHostedInAspnet()
{
    return (AppDomain.CurrentDomain.GetData(".appDomain") != null);
}

(根据反射器)

看起来应用程序域数据中有一个特殊键 – “.appDomain”,它在ASP.NET Web服务器中运行时设置.

我会坚持这一点.

猜你在找的HTML相关文章