@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ログインしていないと「ActiveX コンポーネントを作成できません」エラーが発生する。

1
投稿者投稿内容
ケロ
会議室デビュー日: 2006/10/06
投稿数: 4
投稿日時: 2006-10-06 09:55
こちらには初めて投稿させていただきます。宜しくお願い致します。

IIS5.0+ASP.NET2.0(VB2005)+MSDE2000でWEBアプリを作成しております。
クライアントから出力条件を指定して、WEBサーバー機にてCOMでWORD2003を
CreateObjectしてデータを流し込んでいます。
一連の処理はうまく動作するのですが、一つ問題が発生しました。
WEBサーバー機にWindowsユーザーがログインしていない状態でクライアントから
ブラウジングすると、「ActiveX コンポーネントを作成できません。」エラーが
発生するのです。

つまり物理的に誰かがWEBサーバ機にWindowsログインしていれば、クライアント
から問題なくブラウジングできる状態です。
なんとなくユーザー権限の問題っぽいので、Dcomcnfgを見直してみたのですが
解決に至っておりません。
Dcomcnfgにて下記の設定を行っているのですが、何か足りない設定があるのでしょうか?

【COMセキュリティ】
<アクセス許可>
<起動とアクティブ化のアクセス許可>
※下記のユーザーに対して上記全てを許可する。

インターネットゲストアカウント(USR_PC名)
IISプロセスアカウントの起動(IWAM_PC名)
ASPNET
INTERACTIVE
Administrators
Domain User
Everyone

ご教授のほど宜しくお願い致します。
とら
会議室デビュー日: 2006/10/06
投稿数: 1
投稿日時: 2006-10-06 14:22
COMアプリケーションのプロパティで、
IDタブはどちらにしていますか。
・対話ユーザー
・このユーザー

対話ユーザのままだと、ログインしていないとエラーになったきがしますが。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-10-07 07:09
DCOM の ACL の問題ではなく、Word を CreateObjecet しているんですから、
当然その起動 user の profile が load されている必要があるでしょうね。

ASP.NET でも legacy の ASP でも基本認証を使用しない限り、Network Logon として扱われます。

Network Logon ですから当然 profile は読み込まれません。
ケロ
会議室デビュー日: 2006/10/06
投稿数: 4
投稿日時: 2006-10-10 15:01
とらさん、ちゃっぴさん、回答有難う御座います。
ご返答が遅くなりましてすみませんでした。
色々と設定を入れてしまった為、うまく動作するようになった設定の
検証に手間取ってしまいましたが、おかげさまで結果的に以下の設定
で解決できたようです。ありがとうございました。



1.サーバー機上にOfficeAutomationUserを作成する。
  OfficeAutomationUserをAdministratorsグループに加える。

2.OfficeAutomationUserで一旦ログインし、WORDを起動する。
  Alt+F11でVBAエディタを起動する。
  WORDを終了する。

3.Dcomcnfgにて「DCOMの構成」内の「MicrosoftWord文書」のプロパティ
  を開き、「ID」タブ内を「このユーザー」に変更する。
  ユーザー名はOfficeAutomationUserとしパスワードは割当てたものを使用する。

4.「マイコンピュータ」のプロパティの「COMセキュリティ」を開き、
  下記の設定を行った。

【COMセキュリティ】
<アクセス許可>と<起動とアクティブ化のアクセス許可>に対して下記のユーザーを全て許可する。
SYSTEM
INTERACTIVE
Administrators
ASPNET
インターネットゲストアカウント(USR_PC名)
IISプロセスアカウントの起動(IWAM_PC名)


●特定のユーザー アカウントで実行されるように Office アプリケーションを構成する方法
http://www.support.microsoft.com/kb/288367
1

スキルアップ/キャリアアップ(JOB@IT)