是的,有很多关于这个问题的帖子,我已经尝试了其中许多建议,但没有一个有效。请不要告诉我这已经被问过了。
我被要求更新与数据库交互的内部网站。它最初是在 VS 2003 中创建的,我们无法再访问它,因此需要将项目升级到 VS 2012。我还有最后一个问题要解决。该站点的原始设计者使用以下代码块来设置环境,以便可以连接到正确的数据库:
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' Fires when the application is started
Select Case LCase(HttpContext.Current.Request.ServerVariables("SERVER_NAME"))
Case "localhost", "development_domain"
DB_Environment = "DEVELOPMENT"
Case "staging_ip", "staging_domain"
DB_Environment = "STAGING"
Case "external_prod_domain", "external_prod_ip", "internal_prod_domain"
DB_Environment = "PRODUCTION"
End Select
End Sub
各种环境正在升级到 IIS 7.5。这意味着该站点现在在开发环境中崩溃,因为 IIS 7 及更高版本不再支持 HttpContext.Current。
许多建议的修复都谈到了将功能移至 Application_BeginRequest 方法。我对每次发出请求时都触发它并不感兴趣,因为它是不必要的,而且它似乎会导致应用程序出现问题。
我的部分问题是我无法尝试一些建议,因为它们是用 C# 编码的(我非常熟悉),而应用程序是用 VB 编码的(我不太熟悉)。
谁能指出我如何在不使用 HttpContext.Current 方法的情况下检索要保存在 DB_Environment 变量中的域的正确方向?