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

Posted

技术标签:

【中文标题】System.Web.Services.Protocols.SoapException:服务器无法处理请求【英文标题】:System.Web.Services.Protocols.SoapException: Server was unable to process request 【发布时间】:2011-04-14 12:08:03 【问题描述】:

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

。 ---> System.UnauthorizedAccessException:检索具有 CLSID 10021CC1-E260-11CF-AE68-00AA004A34D5 的组件的 COM 类工厂失败,原因是以下错误:80070005。 在 DBReplicatorService.SQLDEMOScripts..ctor() 在 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)

谁能帮我解决这个问题。

谢谢, 森提尔。

【问题讨论】:

警告* 我在这里猜测 :-) 您的问题是托管 Web 服务的进程很可能需要提升权限才能使用 SQLDMO。您的线程池上的身份帐户很可能没有获得所需权限的访问权限。 我没有使用'sa'账号连接数据库,而且我使用的账号没有创建数据库的权限,是不是有问题? 请发布您的连接字符串,但是是的,如果您使用集成安全性,那么您的帐户需要访问 sql server 嗨,我添加了出现错误的行和连接字符串。 【参考方案1】:

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

【讨论】:

以上是关于System.Web.Services.Protocols.SoapException:服务器无法处理请求的主要内容,如果未能解决你的问题,请参考以下文章