【发布时间】:2012-06-12 16:10:34
【问题描述】:
我有一些默认值来测试我的代码,但出于安全原因,这些值必须仅在我的应用程序在 ASP.NET 开发服务器下而不是在生产环境下运行时设置。 如何以编程方式确定我的应用在哪里运行?
【问题讨论】:
标签: asp.net .net asp.net-development-serv
我有一些默认值来测试我的代码,但出于安全原因,这些值必须仅在我的应用程序在 ASP.NET 开发服务器下而不是在生产环境下运行时设置。 如何以编程方式确定我的应用在哪里运行?
【问题讨论】:
标签: asp.net .net asp.net-development-serv
一种技术是向您的配置添加一个属性,该属性可以使用编码转换文件进行设置。在您的 web.config 中,“DEV”可能为真。在您的生产转换文件中,您的“DEV”可能是错误的。使用这种技术,您甚至可以确定您是否处于暂存、测试、预生产阶段。这也是一种用于更改连接字符串的技术。
转换文件用于根据您的部署更改配置中的各种值。
更多阅读:How to: Transform Web.config When Deploying a Web Application Project
【讨论】:
这是一种非常糟糕的方式来确定您的应用程序是在本地运行还是在生产环境中运行。更好的方法是使用运行时 web.config 值(带有相应的调试和发布模式转换)甚至编译时条件 (#if DEBUG ... #endif)。
【讨论】:
如果您所说的“ASP.NET 开发服务器”是指 Visual Studio 中包含的 Cassini 服务器,则没有支持的方式来执行此操作。
您可以按照其他人的建议将信息添加到 web.config,或者您可以使用一些不受支持的技术(不能保证在未来的版本中工作......)。例如。检查
System.Environment.CommandLine
在 Cassini 下运行时将包含“...WevDev.WebServer...”。
【讨论】: