【发布时间】:2021-12-09 20:40:09
【问题描述】:
试图读取数据库名称,但它在站点中不起作用。使用带有解决方案文件的 asp.net Web 项目。我把它放在 web.config 中。这将根据开发数据库或生产数据库 PRODDB 通过 Web 配置转换文件和脚本进行更改。
<appSettings>
<add key="databaseName" value="DEVELDB"/>
<add key="operatingEnvironment" value="dev"/>
</appSettings>
在 Global.asax.cs 文件中:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
var operatingEnvironment = WebConfigurationManager.AppSettings["operatingEnvironment"].ToString();
if (operatingEnvironment == "dev")
{
Application["DBE"] = WebConfigurationManager.AppSettings["databaseName"].ToString();
}
}
在 login.cs 类文件中:
internal static DatabaseConnection GetDatabaseConnection()
{
return
new DatabaseConnection(
new ConnectionProperties
{
User = Shared.User,
Application = Shared.Application,
DatabaseName = (string)HttpContext.Current.Application["DBE"]
});
}
在 Web.Development.config 文件中有:
<appSettings>
<add key="databaseName" value="DEVELDB" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
<add key="operatingEnvironment" value="dev" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
但是,每当我在登录后进行调试时,它都会转到下面的代码,这很好(与上面的代码相同)但是说没有指定数据库名称?我将它指定为 DEVELDB 并使用“DBE”来引用它。但是,它不是调试到另一个区域然后到那里,而是直接到那里并杀死它?
...
{
User = Shared.User,
Application = Shared.Application,
DatabaseName = (string)HttpContext.Current.Application["DBE"]
});
【问题讨论】:
标签: c# asp.net projects-and-solutions web-project data-connections