• 締切済み

ASPでIEオブジェクトを作って利用したい。

ASPでサーバ側のIEを利用し、操作をしたいと思っています。 ie.aspという名のASPファイルを準備しました。 ----- <HTML> <BODY> <h1> <% Dim oIE Set oIE = CreateObject("InternetExplorer.Application") URL = "http://アクセス先のURL" Call oIE.Navigate( URL ) Do Until oIE.readyState = 4 REM Loop Response.Write("OK") %> </h1> </BODY> </HTML> ----- ie.aspにはIISマネージャで、 サーバの資源を利用出来るユーザの匿名アクセスアカウントを 設定してあります。 クライアントからie.aspにアクセスすると、 (1)サーバに誰もログオンしていない場合 oIE.readyStateの行でエラーが発生します。 エラータイプは0x800706B5だったり0x80010108だったりします。 (2)サーバに、ie.aspに設定したユーザでログオンしている場合 正常に動作します。 誰もログオンしていない状態でもcreateObjectは成功しているようで、 Response.write oIE.readyState としても返答が帰ります。 しかし、oIE.Navigateを実行した後は Response.write oIE.readyState がエラーとなります。 サーバ運用したいので、サーバに誰もログオンしていない状態で 動作させたいのですが、どこに問題があるのでしょうか。 アドバイス、よろしくお願いいたします。

みんなの回答

  • 7659
  • ベストアンサー率66% (4/6)
回答No.2

なるほどレンダリングする必要があったわけですね。回答が及ばず申し訳なかったですね。もしサポートされなくてもいい!リスクは自分がかぶるというお気持ちであれば、もう少しトライしても良いかも。 多分今エラーになっているのはASPが実行されている環境上IEが使用する設定情報(ユーザプロファイル)が指定されていないことが原因と思います。つまり通常ログインして利用している場合はIEの設定が各ユーザのレジストリに保存され、それが利用されていますが、こちらが存在しない。例えば匿名アカウントをログインで利用しているアカウントにすれば動作しませんか?または基本認証にしてみてログインすると動作は変わりませんか?

mmasaya
質問者

お礼

その後、いろいろ試した結果、 ASPではなくASP.NETを使い、 またASP.NETの偽装機能を利用する事で、 ログオフ状態でもIEのオブジェクトを利用出来るようになりました。 まだ少し問題は残っていますが、当面の目的は 達成する事が出来ました。 アドバイスいただき、本当にありがとうございました。

mmasaya
質問者

補足

アドバイス、ありがとうございます。 > 例えば匿名アカウントをログインで利用している > アカウントにすれば動作しませんか? 説明が不明瞭で失礼しました。この設定は既に行っております。 | ie.aspにはIISマネージャで、 | サーバの資源を利用出来るユーザの匿名アクセスアカウントを | 設定してあります。 と記したのがそのつもりでした。 残念ながら、その設定でも動作しません。 基本認証に設定を変更して試してみましたが、解決しませんでした。 > つまり通常ログインして利用している場合はIEの設定が各ユーザのレジストリに > 保存され、それが利用されていますが、こちらが存在しない。 なるほど、その可能性が高いですね。 しかし、いったいどうやって解決したものやら…(困)。

すると、全ての回答が全文表示されます。
  • 7659
  • ベストアンサー率66% (4/6)
回答No.1

お気持ちはわかりますが、まずIEをサーバサイドで実行するのはマイクロソフトの製品サポート対象外の利用方法になろうかと思います。 サーバサイドからHTTPクライアントとして利用できるWinHTTPコンポーネントというのがマイクロソフトから提供されていますのでこちらの使用をお勧めします。

参考URL:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winhttp/http/using_winhttp.asp
mmasaya
質問者

お礼

その後、さらに調べているうちに、 ASPで解決する方法が見つかりました。 http://www.antenna.co.jp/~XSL-FO-V31/support/qa/QA-program.html#QA2004060102 ASPの実行環境ではプリンタが存在しなかったのが 敗因だったようです。 アドバイス、ありがとうございました。

mmasaya
質問者

補足

アドバイスありがとうございます。 …そうですか、IEをサーバサイドで使う事は対象外なのですか。Server.CreateObjectでオブジェクトを作れるものだから、出来るものだと思ったのですが。 今回の目的は、IEを持たないクライアント機器から、サーバにhttpでリクエストを投げて、指定したURLのWebサイトをサーバ上のIEでレンダリングして、クライアント機器に印刷イメージで送り返す事をしたかったのです。 WinHTTPを少し見てみたのですが、HTTPデータの取り扱いは出来そうですが、ページをレンダリングするのは無理みたいですね。残念です。

すると、全ての回答が全文表示されます。

関連するQ&A