我尝试执行以下操作:
分离数据库
将文件复制到临时文件夹
再次附加数据库
这是第一次工作,但是当我尝试从同一个进程第二次运行此方法时,我得到一个错误.我总是可以访问从其他客户端再次附加的数据库,但不能从我的应用程序中访问.
错误是:
"尝试将请求发送到服务器时传输级别错误.(提供程序:共享内存提供程序,错误:0 - 管道另一端没有进程.)",当我尝试从sys.database_files读取数据时新附加的数据库.
该错误是从德语"FehleraufÜbertragungsebenebeimSenden der Anforderung an den Server"翻译而来的.
它发生在"cmdGetDBFileName.ExecuteReader"之后.我仍然可以打开连接,但查询sys.database_files failes.
源代码很长,但我想你可以在开始时跳过这部分,我将db的文件名分离.你看到我的错误或有任何想法我可以检查吗?
public bool DetachB2CPrepare()
{
_log.Debug("DetachB2CPrepare");
SqlConnection prepareDBConnection = null;
SqlConnection prepareMasterDBConnection = null;
SqlDataReader readerDbFiles = null;
bool result = true;
try
{
//rc_b2c_product_prepare.mdf
string prepareDBPysicalFileName = "";
//rc_b2c_product_prepare
string prepareDBFileName = "";
//D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\rc_b2c_product_prepare.mdf
string prepareDBFileNameComplete = "";
//rc_b2c_product_prepare_1.ldf
string prepareTransactionLogPhysicalFileName = "";
//rc_b2c_product_prepare_log
string prepareTransactionLogFileName = "";
//D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\rc_b2c_product_prepare_1.ldf
string prepareTransactionLogFileNameComplete = "";
_log.DebugFormat("Try to open …Run Code Online (Sandbox Code Playgroud)