0

IIS 7 (Win 2008 64 ビット) でのリモート DCOM オブジェクトの作成に問題があります。サーバー側には、古い DCOM コンポーネントをデータ ソースとして使用する WCF サービスがあります。Web 開発サーバーとテストではすべて正常に動作しますが、リモート オブジェクトの作成は IIS 7 で失敗し、「System.UnauthorizedAccessException : Retrifying the COM class factory for remote component with CLSID {DAF3140A-C132-11D2-85FB-004033D061E9} from machine IP 」で失敗します次のエラーが原因で失敗しました: 80070005 IP".

80070005 エラーに関する記事がたくさんあることは知っていますが、すべて試してみましたが、成功しませんでした。

DCOM オブジェクトを作成するコード スニペットを次に示します。

 Type objBlType = Type.GetTypeFromProgID("NetCatService.CatalogServer.1", netCatServerAddress, true);
 instance = Activator.CreateInstance(objBlType); 

DCOM Config を使用して "Everyone" に DCOM オブジェクトへのアクセスを許可しました。ネットワーク サービス アカウントを使用するように IIS アプリケーション プールを構成しようとしましたが、"Network Service" に DCOM へのアクセスも許可しました。Procmonツールを使用して、使用されている追加のリソースを見つけましたが、興味深いものは何もありません。

web.config ファイルに次の行を追加しましたが、成功しませんでした

<system.web>
    <trust level="Full" />
    <identity impersonate="true" password="pass" userName="userName" />
</system.web>

この問題について教えてください。何か案は?

ありがとう

4

1 に答える 1

1

問題を解決しました。

問題はDCOMのセキュリティ構成にあり、アプリケーションをホストするWindowsサービスを作成しましたが、同じエラー「UnauthorizedAccessException」が発生しました。それは「思考の糧」でした。

その後、次の手順を実行しました。

1)サーバー側でドメインアカウントを使用するようにDCOMセキュリティ設定を構成しました。

2)クライアント側の手順1のドメインアカウントを使用するようにDCOMセキュリティ設定を構成しました。

3)ステップ1からドメインアカウントを使用するようにWindowsサービスのログオン設定を変更しました

4)クライアント側とサーバー側の両方のDCOMセキュリティ設定でDCOM認証レベルを確認しました。認証レベルは同じである必要があります。

IIS 7でアプリケーションを機能させるために、アプリケーションプールを作成し、手順1のドメインアカウントを使用するように構成しました。

于 2011-03-12T09:44:19.817 に答える