我正在使用 .net webservice 来恢复 sqlserver 中的数据库。我正在使用 SQLDMO.dll 来恢复数据库,当我运行应用程序时,出现以下错误。
System.Web.Services.Protocols.SoapException:服务器无法处理请求。---> System.UnauthorizedAccessException:检索具有 CLSID {10021CC1-E260-11CF-AE68-00AA004A34D5} 的组件的 COM 类工厂失败,原因是以下错误:80070005. at DBReplicatorService.SQLDEMOScripts..ctor() at DBReplicatorService.DBReplicatorService .RestoreDB(字符串 sDBName,字符串 sUserName,字符串 sPassword,字符串 sBackupFileName)
我正在使用如下代码连接数据库
Dim objBCPExport As New SQLDMO.BulkCopy2
Public objDB As SQLDMO.Database2
Dim objServer As New SQLDMO.SQLServer2
Public Function ConnectDatabaseWithRefresh(ByVal sServerName As String, ByVal sDatabaseName As String, ByVal sUserName As String, ByVal sPassword As String) As Boolean
Dim bResult As Boolean
Try
objServer = New SQLDMO.SQLServer2
objServer.EnableBcp = True
objServer.Connect(sServerName, sUserName, sPassword)
objDB = Nothing
objDB = objServer.Databases.Item(sDatabaseName)
objDB.DBOption.SelectIntoBulkCopy = True
bResult = True
Catch ex As Exception
bResult = False
End Try
Return bResult
End Function
当我在本地主机中使用相同的代码时它工作正常(它包含 sql server 2005),当我在托管服务器中使用它时(它包含 sql server 2008)我收到上述错误
我在这些变量初始化中遇到错误。
Dim objBCPExport As New SQLDMO.BulkCopy2
我正在使用的连接字符串是
Dim cnnNewDB As New SqlConnection("Data Source=" + pServer + "Initial Catalog=" + pDatabase + ";Persist Security Info=True;User ID=" + pUserName + ";Password=" + pPassword)
谁能帮我解决这个问题。
谢谢,森希尔。