我的解决方案有两个项目。用于通过存储库类从Entity Framework .edmx文件生成数据的类库。 App.Config文件connectionString匹配我的第二个ASP.Net 4.0 Web表单项目中的Web.config。
我将BOTH connectionStrings修改为在部署到测试服务器时指向测试数据库(DataSource = TestDB)。当部署到实际站点时,我将其修改为指向实时数据库(DataSource = LiveDB)。
在Site.Master的顶部,我在标签控件中以红色字母“您连接到TEST数据库”显示。我有条件地切换标签if (context.Connection.DataSource.Contains("TestDB"))
在开发过程中我发现了一些奇怪的东西当Web.config指向TestDB时,如果我忘记使App.config匹配(并指向LiveDB),则会出现“连接到TEST”警告但显示来自LiveDB的数据。
这告诉我存储库(类库)使用App.Config,但在Web表单项目中创建的数据上下文使用Web.config connectionString。那是对的吗?我担心如果部署到测试站点并忘记将App.Config指向TestDB,实时数据将被错误更新。
所以我的问题是,在这种情况下...... 显示始终准确的“连接到测试数据库”的通知的最佳方式是什么?
答案 0 :(得分:4)
默认情况下,类库不会使用任何app.config
文件。
如果Web应用程序是.config
文件,它将使用应用程序上下文中的web.config
文件。
答案 1 :(得分:0)
当应用运行时,无论在何处创建上下文,它都会使用web.config中的那个。
为什么不在您的实时应用程序上设置防火墙以阻止(a)除实时网络服务器以外的任何地方的访问,或(b)尤其是您的测试位置?