C# 如何检测.NET程序集是从网站运行还是从桌面计算机运行?

C# 如何检测.NET程序集是从网站运行还是从桌面计算机运行?,c#,.net,asp.net,vb.net,visual-studio,C#,.net,Asp.net,Vb.net,Visual Studio,我只想在程序集中编写代码,以检测它是在“桌面计算机”上运行,还是在ASP.NET应用程序的上下文中运行。这是至关重要的,伙计们,(授权的目的),我不想被解雇,因为我犯了一个错误 所以,请直截了当地告诉我一些代码片段 编辑:我取决于你的答案 编辑v 2.0:如何在部件中使用: [assembly: "AspNetHostingPermission (SecurityAction.RequestRefuge, Unrestricted=true)]" 要防止在web上执行?这可能会有帮助: 检查H

我只想在程序集中编写代码,以检测它是在“桌面计算机”上运行,还是在ASP.NET应用程序的上下文中运行。这是至关重要的,伙计们,(授权的目的),我不想被解雇,因为我犯了一个错误

所以,请直截了当地告诉我一些代码片段

编辑:我取决于你的答案

编辑v 2.0:如何在部件中使用:

[assembly: "AspNetHostingPermission (SecurityAction.RequestRefuge, Unrestricted=true)]"
要防止在web上执行?

这可能会有帮助:


检查HttpContext.Current是否为空,然后报告它未作为web应用程序运行,例如:

if (HttpContext.Current == null) {
     // Report that it is not running as web app.
}

您必须在引用中引用System.Web,并使用语句。

您可能是对的。我没有搜索它,只是在输入问题后才看到列出的内容。所以,我给你学分。我去查一下。谢谢。现在我在想:如果有人创建一个可执行文件(控制台)并调用它,那么相同的代码仍然有效吗?我没有ASP.NET的经验,也不知道其中的诀窍。你说得对。我在一份声明中将您的建议与上述(afolkesson)合并在一起。根据经验,我应该指出,如果他们从新线程检查HttpContext,它将为null,有时甚至在当前线程中也是null…不如变量那么可靠。。。