我的解决方案有两个项目。通过存储库类从实体框架.edmx文件生成数据的类库。App.Config文件connectionString与我的第二个ASP.Net 4.0WebForms项目中的Web.config匹配。
当部署到测试服务器时,我修改两个connectionStrings以指向测试数据库(DataSource=TestDB)。当部署到活动站点时,我将两者都修改为指向活动数据库(DataSource=LiveDB)。
在Site.Master顶部,我在label控件中以红色字母显示“您已连接到测试数据库”。我有条件地切换标签if (context.Connection.DataSource.Contains("TestDB"))的if (context.Connection.DataSource.Contains("TestDB"))属性
在发展过程中,我注意到了一些奇怪的事情。当Web.config指向TestDB时,如果我忘记使App.config匹配(并指向LiveDB),则会显示“连接到测试”警告,但显示来自LiveDB的数据。
这告诉我存储库(类库)使用App.Config,但是在web项目中创建的数据上下文使用Web.config connectionString。对吗?我担心,如果部署到测试站点而忘记将App.Config指向TestDB,实时数据将被错误地更新。
所以我的问题是在这种情况下..。显示“连接到测试数据库”的通知的最佳方法是什么?
发布于 2012-08-17 13:49:17
默认情况下,类库将不使用任何app.config文件。
它将使用应用程序上下文中的.config文件--如果是web.config文件的web应用程序。
发布于 2012-08-17 13:48:20
当应用程序运行时,它使用的是web.config中的应用程序,不管上下文创建在哪里。
为什么不在您的实时应用程序上设置防火墙,以防止访问(a)任何地方,除了活动的set服务器,或(b),特别是您的测试位置?
https://stackoverflow.com/questions/12007053
复制相似问题