如何检查页面是否在.NET/C#的生产、开发或测试环境中运行?在 PHP 中我可以使用
var_dump($_SERVER)
来检查,但不知何故我不知道如何在 .NET 或 C# 中检查它。
我需要查明页面是否在生产/测试/开发中运行,以在页面上显示正确的徽标和标题。
您可以设置任意数量的配置,默认情况下,您有调试和发布。
您可以为不同的配置制作不同的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
可能的解决方案之一是为 Test 添加构建配置,因为 Production 可以是
Release
,Dev 可以是 Debug
。对于测试配置,请像调试一样使用 precomp 指令。
您必须在项目的 TEST
配置中定义
TEST
键。
所以在代码的某个地方你会使用
#if TEST.
如果你想在不同的环境中使用相同的构建,可以使用外部配置文件,但我个人更喜欢第一个解决方案,因为你明确地说出了你想要的构建结果。恕我直言,配置很容易搞乱。
一种方法是检查数据库服务器的名称。 当然,这取决于服务器命名约定。 因此,您从 web.config 中获取 ConnectionString,解析出 DataSource 并将其与已知的生产框进行比较。
另一种方法是始终使用数据库中的某个值来清理您的开发/质量保证盒,以表明它不是生产盒。
您是否在每个环境中连接到不同的数据库服务器?如果没有服务器,至少数据库本身应该不同,有一个包含徽标 url、标题文本和其他 ru.time 设置的配置表,并始终构建相同的二进制文件。
我们这样做并且效果很好。仅 app.config 中的连接字符串发生变化,但我们很少重新部署配置文件。
System.Environment.MachineName
这将为您提供名称,因此只要您知道不同服务器的名称,这应该可以工作。