基本上,标题中的问题 - 我怎样才能确定Cassini是运行我的应用程序而不是IIS?基本上我希望我的代码知道它正在调试,所以如果我在这里错过了一些更容易的东西,请指出它。
答案 0 :(得分:6)
return AppDomain.CurrentDomain
.GetAssemblies()
.Any(
a => a.FullName.StartsWith("WebDev.WebHost")
);
答案 1 :(得分:2)
你可以看一下这个端口。 Casini总是在一个随机的高端口上运行。 IIS通常为80或443,除非您对其进行了不同的配置。
答案 2 :(得分:2)
如果您的目标仅仅是确定您是否正在调试(在这种情况下,构建配置可能会进行调试),您可以使用以下内容:
#if DEBUG
// Code compiled only if debug configuration selected (not release)
#endif
更多信息here
答案 3 :(得分:1)
以下建议您的应用在casini下运行:
答案 4 :(得分:1)
如果我正确理解你,你想确定你是否处于调试模式并且可能应用一些调试逻辑?
过去,我已经使用我在web.config中添加的密钥完成了您尝试实现的目标。当我开发和调试时,我设置变量RunningFromVisualStudio = true,当我升级到生产时,我将变量设置为false。
希望有所帮助。
答案 5 :(得分:0)
分析HTTP响应,看看什么是服务器字段。那应该说实话。 IIS默认情况下会告诉它是IIS(带版本号)。
答案 6 :(得分:0)
虽然我喜欢这里的很多想法,但我认为我找到了一种简单的方法来实现这一目标。
System.Diagnostics.Debugger.IsAttached
This gives a boolean取决于是否有一个调试器附加到执行代码。
我仍然喜欢vc 74提供的#if
代码,但此代码更符合我的目的。