0

sqlserverでデータベースを復元するために.netWebサービスを使用しています。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(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

ローカルホストで使用すると同じコードが正常に動作し(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)

誰かが私が問題を解決するのを手伝ってくれませんか。

ありがとう、センディル。

4

1 に答える 1

0

ユーザー サーバー名とパスワードの正確性が確かな場合、プロジェクトにイベント ログを書き込む権限がない可能性があります。これを修正するには、\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\RestrictGuestAccess に移動し、その値を (0) に変更して再起動します

于 2011-04-14T12:51:33.810 に答える