如何检查页面是否在.NET/C#中的生产、开发或测试中运行?

问题描述 投票:0回答:5

如何检查页面是否在.NET/C#的生产、开发或测试环境中运行?在 PHP 中我可以使用

var_dump($_SERVER)
来检查,但不知何故我不知道如何在 .NET 或 C# 中检查它。

我需要查明页面是否在生产/测试/开发中运行,以在页面上显示正确的徽标和标题。

c# .net environment
5个回答
5
投票

您可以设置任意数量的配置,默认情况下,您有调试发布

您可以为不同的配置制作不同的web.config文件,例如:web.debug.config

更多信息:http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx

在代码中,您可以使用指令来测试配置,例如:

#if DEBUG
  bool isDebug = true;
#else
  bool isDebug = false;
#endif

2
投票

可能的解决方案之一是为 Test 添加构建配置,因为 Production 可以是

Release
Dev 可以是
Debug
。对于测试配置,请像调试一样使用 precomp 指令。

您必须在项目的

TEST

 配置中定义 
TEST 键。

所以在代码的某个地方你会使用

#if TEST.

如果你想在不同的环境中使用相同的构建,可以使用外部配置文件,但我个人更喜欢第一个解决方案,因为你明确地说出了你想要的构建结果。恕我直言,配置很容易搞乱。


0
投票

一种方法是检查数据库服务器的名称。 当然,这取决于服务器命名约定。 因此,您从 web.config 中获取 ConnectionString,解析出 DataSource 并将其与已知的生产框进行比较。

另一种方法是始终使用数据库中的某个值来清理您的开发/质量保证盒,以表明它不是生产盒。


0
投票

您是否在每个环境中连接到不同的数据库服务器?如果没有服务器,至少数据库本身应该不同,有一个包含徽标 url、标题文本和其他 ru.time 设置的配置表,并始终构建相同的二进制文件。

我们这样做并且效果很好。仅 app.config 中的连接字符串发生变化,但我们很少重新部署配置文件。


-2
投票
System.Environment.MachineName

这将为您提供名称,因此只要您知道不同服务器的名称,这应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.