web-dev-qa-db-ja.com

コンポーネントのCOMクラスファクトリの取得に失敗しました

Excelの操作にExcelオブジェクト(COMコンポーネント)を使用しています。私のPCでは正常に動作しますが、アプリケーションをイントラネットに展開すると、次のエラーが表示されます。

次のエラーのため、CLSID {00024500-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリの取得に失敗しました:80070005

web.configでWindows認証とimpersonate = trueを使用しています。

コンポーネントサービスですべての設定を行いましたが、それでも同じエラーが発生します。

助けてください

22
Xyz

アプリをデプロイしたときに同じエラーが発生しました。このサイトから解決策があります: CLSID XXXのコンポーネントは、次のエラーのために失敗しました:80070005アクセスが拒否されました

このソリューションは次のとおりです。

  1. [〜#〜] dcomcnfg [〜#〜]で、マイコンピュータおよびpropertiesを選択します。

  2. COM証券タブを選択します。

  3. アクセス許可で、デフォルトの編集をクリックして追加しますネットワークサービスにそれを与えてローカルアクセス許可を与えます。 <Machine_name>\Usersについても同じことを行います。

  4. 起動許可とアクティベーション許可で、デフォルトの編集をクリックして追加それにネットワークサービスを与えて、それを与えるローカル起動およびローカルアクティベーション許可。 <Machine_name>\Usersについても同じことを行います。

*フォーム認証を使用しました。

22
Monic

Windows 2008 ServerIIS7を使用している場合、対処しなければならない問題がもう1つあります。サーバーは次のエラーを報告する場合があります。

Microsoft Office Excelはファイル 'c:\ temp\test.xls'にアクセスできません。考えられる理由はいくつかあります。

  • ファイル名またはパスが存在しません。
  • ファイルは別のプログラムで使用されています。
  • 保存しようとしているワークブックは、現在開いているワークブックと同じ名前です。

ソリューションはここに投稿されています(ユーザー小川が投稿したテキストを探してください): http://social.msdn.Microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06- 44421818ef91?prof = required

5
sansegot

システムに古いExcel.EXEプロセスがある場合にも、このエラーが発生します(Task Manager --> Processesタブを使用してこれらを表示します)。

それらすべてのインスタンスを強制終了すると、アプリケーションは正常に動作します。

4
Ravi Kiran

これは私のためのトリックをしました:( msdn forum からの解決策)

[コントロールパネル]-> [管理ツール]-> [コンポーネントサービス]-> [コンピューター]-> [myComputer]-> [DCOM構成]-> [Microsoft Excelアプリケーション]に移動します。

右クリックしてプロパティダイアログを取得します。 [セキュリティ]タブに移動し、それに応じて権限をカスタマイズします。

[起動とアプリケーションのアクセス許可]で、[カスタマイズ]、[編集]を選択します。アプリケーションを呼び出すユーザー/グループを追加します。

3
bubbassauro

それが誰かを助ける場合:

Windows 7 64ビットを実行していますが、32ビットdllを登録したかったです。

最初に試しました:regsvr32と次のエラーが表示されました:

System.Runtime.InteropServices.COMException(0x80040154):CLSID {A1D59B81-C868-4F66-B58F-AC94A4A7982E}のコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80040154。

次に、コンポーネントサービス(Run-> DCCOMCNFG)を介してアプリケーションを追加しようとしました( http://www.justskins.com/forums/difference-registering-dll-using-regsvr32-and-component-services- 17280.html )次のエラーが発生しました:

System.UnauthorizedAccessException:CLSID {A1D59B81-C868-4F66-B58F-AC94A4A7982E}のコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80070005。

それを解決するための多くのリンクがありますが、私のために働いたのはコンソールルート->コンポーネントサービス->コンピュータ->マイコンピュータ-> COM +アプリケーション->your_application_name->プロパティ:[セキュリティ]タブ:承認:[このアプリケーションのアクセスチェックを強制する]のチェックを外します。

私はそれが何をするのか分かりません。

2
iguigova

あなたの痛みを理解できます。私の場合、以下の手順を実行することでエラーが解決されました。

  1. スタート>実行> dcomcnfg。
  2. DCOM構成フォルダーを開き、[コンポーネントサービス]> [コンピューター]> [マイコンピューター]> [DCOM構成]を選択します。
  3. 「Microsoft Office Word 97 – 2003ドキュメント」/「Microsoft Excelアプリケーション」を選択し、そのプロパティに移動します。
  4. 「セキュリティ」タブセットで「起動とアクティベーションの許可」をカスタマイズする必要があります(許可ユーザー)。
  5. 次に、IISに移動して、Webのアプリケーションプールを選択し、その詳細設定に移動して、IDユーザーとして[ネットワークサービス]を選択します。

お役に立てれば。

0
Ravi

説明するCLSIDは、Microsoft.Office.Interop.Excel.ApplicationClass用です。このクラスは、基本的にInprocServer32を介してExcel.exeを起動します。インストールしていない場合は、上記で受け取ったエラーメッセージが返されます。

0
user2074102

IIS 8の場合、基本的にMonicと同じことをしました。x64マシンで独自のアプリケーションプールとしてアプリケーションを実行しています。DCOMCNFGで、[マイコンピューター]を右クリックしてプロパティを選択します。

2. [COM証券]タブを選択します。

3. [アクセス許可]で、[デフォルトの編集]をクリックし、iis apppool\myappを追加して、ローカルアクセス許可を許可します。 iis apppool\myappについても同じことを行います

4.起動とアクティベーションのアクセス許可で、[デフォルトの編集]をクリックし、iis apppool\myappを追加して、ローカル起動とローカルアクティベーションのアクセス許可を付与します。 iis apppool\myappについても同じことを行います。

さらに、C:\ Windows\SysWOW64\config\systemprofile\Desktopの下に説明されているフォルダーを作成し、iis apppool\myappに対する読み取りと書き込みのアクセス許可も付与する必要がありました。

0
Himilou

IIS 8.5(Windows Server 2012 R2)Serverおよびその再起動なしのケースで動作しました:

  1. IISのアプリケーションに接続したアプリケーションプールの選択

  2. 右クリック->詳細設定->プロセスモデル->選択ローカルシステム推奨ApplicationPoolIdentityの代わりに

  3. また、C:\ Windows\SysWOW64\config\systemprofile\desktopにユーザーが十分にアクセスできることを確認してください。

  4. このプールに接続したWebサイトリンクを更新します


enter image description here

0