Visual Studio 2008のC#ASP .NETプロジェクトに問題があります。この問題は、Windows 7 Ultimate(x64)を使用してコンピューターを再インストールしたときに始まりました。
私が得ているエラーメッセージは次のとおりです。
System.UnauthorizedAccessException:次のエラーのため、CLSID {000209FF-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリを取得できませんでした:80070005. at xxx.Utility.WordDocument..ctor(String filePath、HttpServerUtility util)at customer_communication.BuCreate_click(Object sender、EventArgs e)in c:\ xxx\Website\customer\communication.aspx.cs:line 127
この問題に対する私の修正:
Win 7 64ビットとOffice 2007を使用しています
プログラム「dcomcnfg -32」を実行します。 (64ビットで実行されている場合、WordおよびExcelコンポーネントを見つけることができません)
「コンソールルート/コンポーネントサービス/コンピューター/マイコンピューター/ DCOM構成/」に進みます。MicrosoftWordとExcelを検索し、プロパティを選択します。
[セキュリティ]に移動し、[構成のアクセス許可]で[カスタマイズ]を選択します(必要に応じて、他のアクセス許可も変更したい場合がありますが、変更する必要はありません)。
「ID」に移動して、「インタラクティブユーザー」を選択します。
完了したら「OK」を押すことを忘れないでください。 :D
これがあなたの問題、そしてここに来てこれを読む他の人にも役立つことを願っています.
ASP.NETプロセスIDのWord COMコンポーネントへのアクセスを許可する必要があります({MACHINE}\ASPNET on IIS 5またはNetwork Service on IIS 6):
「コントロールパネル-管理ツール-コンポーネントサービス-コンピューター-マイコンピューター-DCOM構成」
"Microsoft Word Document"、右クリック-[設定]-[セキュリティ]タブ、ASP.NETプロセスIDのアクセス(ローカルおよびリモート)を許可します(IIS = 5、IIS 6)の「ネットワークサービス」。
「System.Runtime.InteropServices.COMException(0x800A13E9):メモリが不足しています。今すぐドキュメントを保存してください。」というメッセージが表示された場合ドキュメントを開く/追加するときの例外(自分の有効期限)、%Temp%および\ Content.Wordフォルダーから一時ファイルを削除するだけです。
起動dcomcnfg -32
またはdcomcnfg /32
両方とも、ターゲットアプリ(Microsoft Excel)をリストに表示できませんでした。
しかし、@ IIS7がOffice InteropでNiceを再生する方法 、特に、起動に関するメモmmc -32
およびコンポーネントサービススナップインに手動で追加すると、表示されるようになりました。 (注:リンクはIIS7について説明していますが、私の問題はWindowsサービスに関するものでした)。
これは私のために働いた:
これは私が理解するのが難しいものでした。多分、私のWindowsモジョのスキルは単に劣っています。しかし、Windows Server 2008でコンポーネントサービスを32ビットモードで実行することはできませんでした。これが同じ問題を抱えている他の人の助けになることを願っています。
編集:完全を期すために、Windows Server 2008でWord Interopを動作させるには、 この回答 で説明されているようにデスクトップフォルダーも作成する必要がありました。
Tomasの答えを修正し、Windows Server 2k8 x64での正しいコマンドは「dcomcnfg/32」です(-ではなくスラッシュ)
また、IIS_IUSRSを追加して、すべてのセキュリティオプションを、ランチとアクティベーションのアクセス許可、アクセス許可、および構成の許可に対する完全な権利を追加してカスタマイズする必要がありました。 IdentityタブのInteractiveユーザーも同様です。それは私のために働いた。
Word 2010でドキュメントファイルを開くときにこの問題が発生し、Microsoft Word 97-2003ドキュメントプロパティに設定する必要がありました。
このエラーは.NET System.UnauthorizedAccessExceptionに対応し、通常、コードが作成しようとするCOMコンポーネントのアクセスの設定が間違っていることが原因です。
Dcomcnfgユーティリティを起動し、DCOM設定に移動し、必要なオブジェクトを選択して、ASP.NETコードが実行されているアカウントのアクセスを許可してください。問題を解決するはずです。
最後に、ユーザーにサービス「Remote Procedure Call(RPC)」を実行する権限がないため、同じ問題が発生しました。コントロールパネルの管理ツールでそのサービスを探し、ログオンで[ローカルシステムアカウント]をクリックし、システムを再起動して問題を解決しました。
レジストリに移動HKCR>TypeLib>{00020905-0000-0000-C000-000000000046}>8.7>0
、フォルダを削除します "win32"これはWord COM Classエラー用です。
レジストリに移動HKCR>TypeLib>{00020813-0000-0000-C000-000000000046}>1.9>0
、フォルダを削除します "win32"これはExcel COMクラスエラー用です。
私の問題を解決した方法を試してください。
回答としてマークされている上記のすべてのメソッドをテストしますが、ユーザーがアクティブまたはログオフしていないときにWindowsサーバーでアクセス例外を取得します。そう:
officeは、最初のステップで作成したユーザーの設定で実行されるため、このユーザーで設定を変更した場合。 120%は問題なく動作しています。 3つの異なるサーバーで試してみました。