如何检查页面是否在 .NET/C# 中的生产、开发或测试中运行?
如何检查页面是否在 .NET/C# 的生产、开发或测试环境中运行?在 PHP 中,我可以使用 var_dump($_SERVER) 来检查,但不知何故,我不知道如何在 .NET 或 C# 中检查它。
我需要查明页面是否在生产/测试/开发中运行以在页面上显示正确的徽标和标题。
How can I check whether the page is run in a production, dev, or test environment in .NET/C#? In PHP I can use var_dump($_SERVER)
to check, but somehow I have no idea how to check it in .NET or C#.
I need to find out whether the page is run in production/test/dev to display the correct logo and heading on the page.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以根据需要设置任意数量的配置,默认情况下,您有调试和发布。
您可以为不同的配置创建不同的 web.config 文件,例如:web.debug.config
更多信息:http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx
在代码中,您可以使用指令来测试配置, 例如:
You can setup as many configuration as you want, by default, you have Debug and Release.
You can make different web.config files for different configuration, for example: web.debug.config
More information: http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx
From code you can use directives to test the configuration, for example:
可能的解决方案之一是为测试添加构建配置,因为生产可以是
发布
,开发可以是<代码>调试。对于测试配置,请像调试一样使用 precomp 指令。您必须在项目的 TEST 配置中定义
TEST
键。因此,在代码中的某个地方,您将使用
#if TEST。
如果您想在不同的环境中使用相同的构建,可以使用外部配置文件,但我个人更喜欢第一个解决方案,因为您明确地说了什么构建你想要的结果。恕我直言,配置很容易搞乱。
One of possible solutions could be add build configuration for Test, as Production could be
Release
, Dev could beDebug
. For test configuration use precomp dirrective like we do for debug.TEST
key you have to define in project's TEST configuration.So somewhere on code you will use
#if TEST.
If you want to use the same build in different environments, can use external configuration file, but I personally would prefer the first solution, as you esplicitly say what build result you want. With config is easy to mess up IMHO.
一种方法是检查数据库服务器的名称。当然,这取决于服务器命名约定。因此,您从 web.config 中获取 ConnectionString,解析出 DataSource 并将其与已知的生产框进行比较。
另一种方法是始终使用数据库中的某个值来清理您的开发/质量保证盒,以表明它不是生产盒。
One way is to check the name of your database server. This depends on the server naming convention, of course. So you fetch the ConnectionString out of your web.config, parse out the DataSource and compare it against your known production box.
Another approach is to always sanitize your dev/qa boxes with a certain value in the database that conveys that it's not a production box.
您是否在每个环境中连接到不同的数据库服务器?如果没有服务器,至少数据库本身应该不同,有一个包含徽标 url、标题文本和其他 ru.time 设置的配置表,并始终构建相同的二进制文件。
我们这样做并且效果很好。仅 app.config 中的连接字符串发生更改,但我们很少重新部署配置文件。
Dont you connect to different database server in every environment? if no server at least the database itself should be different, have a config table with logo url, heading text and other ru.time settings and always build same binaries.
We do this and works very well. only connection string changes in app.config but we seldom redeploy the config file.
这将为您提供名称,因此只要您知道不同服务器的名称,这应该可以工作。
This will give you the name, so as long as you know the names of the different servers this should work.