- - PR -
(ASP.NET)EXCELファイルの多重アクセス方法について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-03-08 16:51
こんにちは。初めまして。アルエットと申します。
ASP.NETで開発を行っているのですが、壁にぶつかり 困っています。 現在、ASP.NETでEXCELを作成→表示する機能を作成していて、 クライアント側よりWEB画面のボタンを押すことによって @EXCELファイルをCreateObject("Excel.Application")〜SaveAsで サーバーに作成(名前はユニーク) Ajavascriptのwindow.open命令をResponse.Writeで出力 EXCELファイルをクライアントのウインドウで開く といった処理を行っているのですが、 EXCELウインドウが出ている状態でもう一度ボタンを押し、 EXCELの作成を行うとすると処理が止まってしまいます。 また2台のパソコンからEXCELを作成するサーバにアクセスし、 一台がEXCELファイルを作成し開いてる時に もう一台が新たにEXCELファイルを作成しようとしても同じ現象がおきます。 サーバー側でエラーメッセージを確認すると 「ActiveXを作成できませんでした 」 といったメッセージが出力されています。 EXCELウインドウを閉じさえすれば、EXCELファイルの作成・表示は可能です。 (正常終了します) デバックで見る限り、CreateObject("Excel.Application")の所で 固まってしまっているようなのですが・・・・。 このままだと一人がEXCELファイルを開いている時は他の人間は EXCELを作成できないといった事態が発生してしまいます。 EXCELファイルへの多重アクセスの方法、 もしくは根本的な間違い・回避策等があればご教授願います。 (サーバ) OS:Windows2003 Office2000 IIS6.0 (クライアント) OS:Windows2000 Office2000 |
|
投稿日時: 2004-03-08 17:02
回答ではありません。
クライアントへは、ファイルをオープンしてストリームに取り込み、それをresponse.writeか何かでながしていますか?そうすると、クライアントが長時間、保存/実行/キャンセルの画面を出していると、ファイルが消えてしまいます。…という現象が、私の方で発生しています。 私の方では、セッションが切れるタイミングでファイルを削除するようにしました。ファイルをresponseで吐き出すのではなく、ファイルへのリンクを張ったページを表示するようにしました。 |
|
投稿日時: 2004-03-08 18:15
私も、Jittaさんと同様の回避方法を行った事があります。
しかし、それでもダメなケースが多々ありました。どうしても原因を特定できないため、ユーザに決まり切った順番でブラウザを操作するようお願いするしかありませんでした。(出来たり出来なかったりする) Office2000との事ですが、かなり茨の道なので止めた方がよろしいかと。(回答になってなくてごめんなさい) http://support.microsoft.com/default.aspx?scid=KB;JA;257757 |
|
投稿日時: 2004-03-08 19:01
Jittaさん。Lichtensteinさん。
今現在の処理はjavascriptのwindow.open('サーバ上のEXCELファイルパス') をResponse.Writeで書き出してEXCELを出力しています。 これはリンクと考えてよろしいのでしょうか? あれからこちらでいろいろ試したのですが、どうやら EXCELを作成するマシンがoffice2000の場合に起きる現象で OfficeXPにすると問題なく処理を行うことができました。 それだけが問題かは分かりませんが、Lichtensteinさんのリンクを 見る限り、まだまだASP.NETで Office操作は問題があるということでしょうか・・・・。 ともあれofficeのバージョンアップで問題がなければ、XPへの 移行で当面の問題は対処したいと思います。 ありがとうございました。 |
1