如何确定Cassini是否正在运行您的网络应用程序?

时间:2010-12-15 04:36:10

标签: .net cassini

基本上,标题中的问题 - 我怎样才能确定Cassini是运行我的应用程序而不是IIS?基本上我希望我的代码知道它正在调试,所以如果我在这里错过了一些更容易的东西,请指出它。

7 个答案:

答案 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下运行:

  • 运行您的应用时,如果您的网址是 浏览器有一个提到的端口 它(通常是一个很高的数字 - 大于1000)
  • 您可以检查项目属性(Web选项卡)以检查它是否在IIS或Web开发服务器(casini)下运行
  • 会有一个 进程为casini服务器运行 WebServer40.exe

答案 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代码,但此代码更符合我的目的。