2012-12-30 30 views
0

可能重复:
How to check in ASP.NET MVC View if site is running on localhost or 127.0.0.1如何从部署在asp.net应用程序检测开发环境

我用两个条目在web.config中的连接字符串,而我使用的HttpContext .Current.Request.UserHostAddress用于部署和开发环境之间的检测:

public static SqlConnection GetSqlConnection() 
{ 
    if (HttpContext.Current.Request.UserHostAddress != "127.0.0.1") 
    ... 
    else 
    ... 
} 

但问题在这里,有些时候HttpContext.Current为空并引发异常(即:当调度任务在asp.net中从global.asax中被定位时)。 有没有这方面的一般解决方案?

+0

IsLocal是请求的方法,有些时候请求为空。上面并不完美的解决方案 – mmtemporary

回答

4

你应该改变环境之间的配置文件中的连接字符串。这就是为什么他们首先存储在配置文件中,所以你不必这样做。

我更喜欢把连接字符串放在一个单独的文件中,而不是部署它。使用环境特定的其他配置也可以做到这一点。另一种方法是使用XML转换作为构建作业的一部分,以便在部署到生产环境中时更改连接字符串。

+0

好,但是当我们在web.config中存储连接字符串时,我们可以使用.net框架中定义的方法来读取连接字符串。 – mmtemporary

+2

咦?这不正是配置文件的用途吗?读东西? –

+0

不,但如果存在web.config的任何解决方案,从您的解决方案中更好。如果没有其他解决方案,您的解决方案就很好。 – mmtemporary

相关问题