System.Web.Services.Protocols.SoapException:服务器无法处理请求

时间:2011-04-14 12:08:04

标签: .net asp.net sql-server-2005 asmx sqldmo

我正在使用.net webservice来恢复sqlserver中的数据库。我正在使用SQLDMO.dll来恢复数据库,当我运行应用程序时,我收到以下错误。

System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.UnauthorizedAccessException:由于以下错误,检索具有CLSID {10021CC1-E260-11CF-AE68-00AA004A34D5}的组件的COM类工厂失败:80070005。    在DBReplicatorService.SQLDEMOScripts..ctor()    at DBReplicatorService.DBReplicatorService.RestoreDB(String sDBName,String sUserName,String sPassword,String 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

当我在我的localhost中使用相同的代码它工作正常(它包含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)

任何人都可以帮我解决问题。

谢谢, 塞特希。

1 个答案:

答案 0 :(得分:0)

哎, 如果你确定用户服务器名称和密码的准确性 您的项目可能无权编写事件日志。 解决这个问题 \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog \ Application \ RestrictGuestAccess并将其值更改为(0)以重新启动