我已经为此工作了大约一天半,并在网络上搜索了大量的博客和帮助文章。我在 SO 上发现了几个与此错误相关的问题,但我认为它们并不完全适用于我的情况(或者在某些情况下,不幸的是,我无法很好地理解它们以实现:P)。我不确定我能否很好地描述这一点以获得帮助......但这里是:
我们有一个 .NET 应用程序来跟踪我们的资源。具有将资源复制到时间跟踪系统和计费系统的导出功能;这将访问链接到时间和计费数据库的存储过程。
我最近将计费系统数据库移至新服务器(原始服务器:Server 2003 SP2、SQL 2005;新服务器:Server 2008 R2、SQL 2008 R2)。我设置了一个指向 2008 数据库的链接服务器。我更新了存储过程以指向 2008 服务器,然后我收到有关 MSDTC 和 RPC 的错误 (http://www.safnet.com/writing/tech/archives/2007/06/server_myserver.html)。我在链接服务器上启用了“rpc/rpc out”并将 MSDTC 设置为允许网络访问(如下所示:http ://www.sqlwebpedia.com/content/msdtc-troubleshooting )。
现在,当我尝试运行导出功能时,我得到了上述信息:“此 SqlTransaction 已完成;它不再可用。” 对我来说奇怪的是,当我刚刚运行存储过程(来自 SSMS)时,它说它成功完成。
有没有人见过这个?我错过了配置中的某些内容吗?我继续浏览相同的页面,我发现的唯一一件事是在进行 MSDTC 更改后我没有重新启动(在此处提到:http ://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders /thread/7172223f-acbe-4472-8cdf-feec80fd2e64/)。
我可以发布部分或全部存储过程,如果有帮助...请告诉我。