- PR -

windows.openでExcelファイルを開くとIEが応答しなくなる

投稿者投稿内容
51
常連さん
会議室デビュー日: 2004/05/20
投稿数: 31
投稿日時: 2004-05-20 18:56
こんにちは。初めて投稿致します。51と申します。

現在、ASP.Net C#を使用して帳票を出力するシステムを作っているのですが、
そこで「windows.openでExcelファイルを開くとIEが応答しなくなる」という
事象が発生しています。
行っている動作は以下の通りです。

@サーバ側で、Excelファイルを作成する。
Aクライアントから、JavaScriptで@のファイルのパスを指定し、
 window.openで表示する。

@は正常に動作するのですが、AでIEが表示途中に応答しなくなります。
(ごく、稀にですが、正常に動作する時もあります)

当初、Excelプロセスの解放洩れかと思ったのですが、
「GC.Collect();」を実行しても、事象はかわりませんでした。
環境は次の通りです。

OS------------- windows2000 sp4
ブラウザ-------- IE6.0 sp1
Office--------- xp

.Netとは無関係な事象かもしれませんが、
他に投稿する場所がなかったので、投稿させて頂きました。
どうぞ、よろしくお願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-20 19:14
 サーバ/クライアントで、PC環境が1つしか書かれていないのですが、サーバとクライアントは同じマシンなのでしょうか?

 もしそうなら、タスクマネージャを起動して、EXCELプロセスが残っていないか、確認してみてください。また、とりあえずwindow.openはコメントアウトし、“サーバ処理”がすんだ後に“できたファイル”をダブルクリックしてみてください。これでエクセルが出てこなければ、エクセルを非表示にしたままだからです。


 あと、複数のクライアントから同時にアクセスしたとき、期待通りの動作をしますか?サーバでExcelファイルを作り、Javascriptでそのファイルへのパスを指定する、というのが気になったので。
51
常連さん
会議室デビュー日: 2004/05/20
投稿数: 31
投稿日時: 2004-05-20 19:39
Jittaさん、早速のお返事ありがとうございます。
説明が足りない箇所があり、申し訳ありませんでした。

サーバ、クライアントの環境ですが、
本番は2台なのですが、現在は1つのマシンで実行しています。

早速、教えて頂いたことを試してみました。

@プロセスが残っているか
タスクマネージャで確認したところ、残っていませんでした。

Awindow.openせずに生成したファイルを表示。
ダブルクリックでExcel起動したところ、正常に表示できました。
ただ、右クリック→IEで表示とすると、window.openの時と同じ事象が発生します。


もし、他に原因と見受けられる箇所があれば、どうぞよろしくお願い致します。


[ メッセージ編集済み 編集者: 51 編集日時 2004-05-24 13:04 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-20 19:59
引用:

51さんの書き込み (2004-05-20 19:39) より:

Awindow.openせずに生成したファイルを表示。
ダブルクリックでExcel起動したところ、正常に表示できました。
ただ、右クリック→IEで表示とすると、window.openの時と同じ事象が発生します。


おお!こんなことできるのか!っつうか、わざわざ関連づける意味があるのか?
しかし、面白いですね。「パスワード」を掛けたファイルを開いてみましたが、エクセルが起動して、「パスワード」の入力を求めてきました。パスワードを入れると、エクセルはそのままで、別途IEが起動して、その中に表示されました。

 発生している環境は、サーバとクライアントが一緒ということですが、ASP.NETでエクセルを起動する為に、DCOMCONFIGをやってますよね?どのように構成しました?それが関係しているような???
↑↑↑↑↑↑
つまり、何らかのメッセージがエクセルからでているのだけれど、エクセルが表示されないので、IEが応答していないように見えているのでは?

また、IEが応答しないとは、タイトルバーに「(応答なし)」とでるのでしょうか?


引用:

B多重アクセス
2〜3人で行いましたが、大丈夫なようです。
1クライアントに1ファイルが生成されるため、
多重でも問題ないと思います。


ファイル名がバッティングしないか、ということなのですが?サーバのエクセルがファイルを作るのなら、クライアントに作るのではなく、サーバに作りますよね。複数の人がアクセスして、それぞれが要求するものが違うと、結果は不定になると思うのですが。。。要求ごとに違うファイル名を生成しているなら、大丈夫ですけど。

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-05-20 20:02 ]
51
常連さん
会議室デビュー日: 2004/05/20
投稿数: 31
投稿日時: 2004-05-20 20:20
引用:
--------------------------------------------------------------------------------
おお!こんなことできるのか!っつうか、わざわざ関連づける意味があるのか?
しかし、面白いですね。「パスワード」を掛けたファイルを開いてみましたが、エクセルが起動して、「パスワード」の入力を求めてきました。パスワードを入れると、エクセルはそのままで、別途IEが起動して、その中に表示されました。
--------------------------------------------------------------------------------

IEの中にExcelファイルが出てくるのが、最終的な理想なのですが、
今、私の環境(他の開発メンバーのマシンも含めて)では、
これすらも、行うことができないようです。

引用:
--------------------------------------------------------------------------------
 発生している環境は、サーバとクライアントが一緒ということですが、ASP.NETでエクセルを起動する為に、DCOMCONFIGをやってますよね?どのように構成しました?それが関係しているような???
↑↑↑↑↑↑
つまり、何らかのメッセージがエクセルからでているのだけれど、エクセルが表示されないので、IEが応答していないように見えているのでは?
--------------------------------------------------------------------------------

なるほど・・・。
DCOMCONFIGでは、アクセス権を3種類とも、everyoneフルコントロールにしています。
後は、規定値なのですが、これ以外の設定が必要なのでしょうか?

引用:
--------------------------------------------------------------------------------
また、IEが応答しないとは、タイトルバーに「(応答なし)」とでるのでしょうか?
--------------------------------------------------------------------------------
「応答なし」にはならないのですが、真っ白な状態で固まってしまいます。
タスクマネージャで強制終了する時に、「応答なし」となります。


引用:
--------------------------------------------------------------------------------
ファイル名がバッティングしないか、ということなのですが?サーバのエクセルがファイルを作るのなら、クライアントに作るのではなく、サーバに作りますよね。複数の人がアクセスして、それぞれが要求するものが違うと、結果は不定になると思うのですが。。。要求ごとに違うファイル名を生成しているなら、大丈夫ですけど。
--------------------------------------------------------------------------------

申し訳ありません。思い切り勘違いしていました。
クライアント毎に必ず一意になるようなファイル名で生成するようにしています。

何回もありがとうございます。
どうぞ、よろしくお願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-20 20:26
引用:

51さんの書き込み (2004-05-20 20:20) より:

DCOMCONFIGでは、アクセス権を3種類とも、everyoneフルコントロールにしています。
後は、規定値なのですが、これ以外の設定が必要なのでしょうか?


 [ID]タブの設定は、どうなってます?これが「このユーザー」だと、支障があるかも。
51
常連さん
会議室デビュー日: 2004/05/20
投稿数: 31
投稿日時: 2004-05-21 09:21
別箇所でトラブルが起きてしまい、書き込みが遅くなって申し訳ありません。

DCOMCONFIG設定を全て記述致します。
(申し訳ありません。初めからこうすれば良かったです・・・)

********************************************************************
【全般タブ】
認証レベル------------規定

【場所タブ】
データが置かれているコンピュータ上で実行する-----OFF
このコンピュータ上で実行する--------------------ON
次のコンピュータで実行する----------------------OFF

【セキュリティタブ】
独自のアクセス許可を使う-----------ON(everyoneアクセスの許可)
独自の起動アクセス許可を使う-------ON(everyone起動の許可)
独自の構成アクセス許可を使う-------ON(everyoneフルコントロール)

【識別タブ】
実行するユーザアカウント-----------次のユーザ(ログイン時のユーザ名を指定)

********************************************************************

IDタブと、識別タブは同じと思って大丈夫でしょうか?
このような設定なのですが、いかがでしょうか・・・。

どうぞ、よろしくお願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-21 09:44
引用:

51さんの書き込み (2004-05-21 09:21) より:

【識別タブ】
実行するユーザアカウント-----------次のユーザ(ログイン時のユーザ名を指定)


 チームメンバーが、この設定で問題があったように思います。この辺を変えて発生して、別のに変えてすぐに解決したので、「dcomconfigをいじった」ことしか覚えていないのですが。。。

これを「対話ユーザー」にしたら、どうなります?

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