ASP.NET应用程序指向错误数据库时出现问题

ASP.NET应用程序指向错误数据库时出现问题,asp.net,sql-server,Asp.net,Sql Server,我有一个使用MS SQL Server 2008数据库的web应用程序。最近,我制作了两份数据库副本,一份用于正在进行的开发,另一份用于用户开始测试和评估应用程序 我现在有两个独立的web应用程序。我已将“test”版本的web.config更改为指向test DB,但它似乎仍在使用以前的版本 这是缓存在什么地方吗?我已经在盒子上运行了IISRESET,但是我的web应用程序的“测试”版本似乎仍然指向错误的数据库 这让我抓狂,非常感谢您的帮助。确保连接字符串不在其他任何地方,如hibernate

我有一个使用MS SQL Server 2008数据库的web应用程序。最近,我制作了两份数据库副本,一份用于正在进行的开发,另一份用于用户开始测试和评估应用程序

我现在有两个独立的web应用程序。我已将“test”版本的web.config更改为指向test DB,但它似乎仍在使用以前的版本

这是缓存在什么地方吗?我已经在盒子上运行了IISRESET,但是我的web应用程序的“测试”版本似乎仍然指向错误的数据库


这让我抓狂,非常感谢您的帮助。

确保连接字符串不在其他任何地方,如hibernate.config。

只是一个猜测:您的连接字符串可能没有在您认为的位置进行配置。您更改了错误的连接字符串,或者根本没有从web.config读取连接字符串

配置不会缓存在任何位置,因此当您更改连接字符串并启动应用程序时,会加载更改的值


创建DB连接的数据访问代码部分是什么样子的?

如果从原始数据库还原测试数据库,并且使用同义词,则同义词的名称可能具有完整名称,包括数据库名称。尝试更改这些名称从同义词的名称中删除数据库名称!!!它会成功的

作为@Maria回答后的补充/补充说明,如果右键单击已恢复的[新]数据库(例如Test_DB),单击“文件”,然后查看“数据库文件”,它们可能仍然指向,例如MAIN_DB和MAIN_DB.log。例如,您可能希望将它们更改为TEST_DB和TEST_DB.log,以便您的测试数据库实际上指向正确的(测试)数据文件。(但是,当您将[live]数据库还原到新的[test]数据库时,这可能只是将您的测试应用程序指向测试数据库所需的许多步骤中的一步。)

不,您所说的听起来不错,请检查您的global.asax中是否有内容覆盖了这一点。我是否可以提出一个良好的实践建议;为SQL服务器使用SQL别名。因此,创建一个名为prod的别名和一个名为test的别名,让它们指向正确的SQL数据库,并在不同的端口上运行prod和test。例如,让prod在14331上监听,然后测试14332上的监听。然后,您可以使用pc上的本地防火墙实现不接受来自测试web服务器的连接等。这样,您就可以隔离产品和测试。事实上,良好的实践总是会告诉您,prod不应该看到de&test,vica也不应该看到de&test。您是否将Linq to SQL与dbml文件一起使用?我使用Linq进行数据访问。我刚刚再次检查,我的web.config中的“初始目录”值明确指向DB的“测试”版本。@Jimmy你能用web.config的
部分编辑你的帖子吗,而
new
s up您的数据上下文的代码行?我发现了问题-我的“测试”版本代码包含在包含另一个版本的文件夹中,因此看起来上面目录中的web.config比下面目录中的web.config更重要-听起来正确吗?我没有在与另一个版本相同的级别创建测试版本,它似乎可以工作。我不知道web.config是这样工作的——我想是活到老学到老。@Jimmy——web.config就是这样工作的。您可以覆盖子目录中的web.config值,只要它们在IIS中配置为虚拟目录或单独的应用程序,并且“baser”web.config不会使用配置部分中的lockElements、lockAttributes等属性显式锁定元素。