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

发布于 2024-12-04 00:10:15 字数 151 浏览 1 评论 0原文

如何检查页面是否在 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

醉梦枕江山 2024-12-11 00:10:15

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

您可以为不同的配置创建不同的 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

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:

#if DEBUG
  bool isDebug = true;
#else
  bool isDebug = false;
#endif
世俗缘 2024-12-11 00:10:15

可能的解决方案之一是为测试添加构建配置,因为生产可以是发布开发可以是<代码>调试。对于测试配置,请像调试一样使用 precomp 指令。

您必须在项目的 TEST 配置中定义 TEST 键。

因此,在代码中的某个地方,您将使用 #if TEST。

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

One of possible solutions could be add build configuration for Test, as Production could be Release, Dev could be Debug. 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.

赢得她心 2024-12-11 00:10:15

一种方法是检查数据库服务器的名称。当然,这取决于服务器命名约定。因此,您从 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.

如歌彻婉言 2024-12-11 00:10:15

您是否在每个环境中连接到不同的数据库服务器?如果没有服务器,至少数据库本身应该不同,有一个包含徽标 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.

酷遇一生 2024-12-11 00:10:15
System.Environment.MachineName

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

System.Environment.MachineName

This will give you the name, so as long as you know the names of the different servers this should work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文