- 締切済み
拡張子.idiファイルを開けない。
サーバー上の特定の拡張子ファイルを「http形式」(「http:サーバー名/格納フォルダ/ファイル名.ファイル拡張子)で開けません。 開けないファイルは、拡張子が「idi」(アイ・ディー・アイ)というSpaceVisionの3Dデータです。 エラーメッセージは下記となります。 SpaseVisionのファイルですが、XMLが走っているものと思われます。 --------------- エラーメッセージ ------------------------------ XML ページを表示できません XSL スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。 _____ テキストの内容に無効な文字が見つかりました。リソース 'http://パス&ファイル名.idi' の実行エラーです。ライン 213、位置 5 mm ( ------------- エラーメッセージ終了 --------------------------- ファイルとプログラムの関連付けは行っており、そのファイルを自端末にコピーするかそのサーバーフォルダを自端末のネットワークドライブに割付けフォルダを開き直接クリックでは開く事ができます。ファイルの指定方法で下記の指定方法でも開く事はできます。http形式でのみ開けません。 \\サーバーホスト名¥格納フォルダ¥ファイル名.idi file:\\\サーバーホスト名¥格納フォルダ¥ファイル名.idi その同じサーバーとフォルダで他のファイル(xls、ppt、doc、pdf、hpgl・・)はhttp形式でも開く事はできます。拡張子がidiのファイルのみ開けません。 ファイルを他のWindows2000serverに格納して実行しても同様の現象です。サーバー単体の問題ではない様です。 端末(同じXP)を変えても同様です。端末単体の問題でもない様です。 Win XP Home Edisionでは、「.idi」の拡張子はシステムでOutlook Expressのwab.exe 「Address Book」に関連付けされている様です。この辺に何かあるのでしょうか? 原因及び対策がわかる方は是非よろしくお願いします。 <サーバー、クライアント情報> サーバーのOS:Windows2000server Service Pack 4 クライアントのOS:WindoesXP Professional Version 2002 Service Pack 3 対象ソフト:Space Vision:Version 2.7.0.0/jp 以上、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- localica
- ベストアンサー率52% (202/385)
クライアント側でアプリケーションが関連付けられているのなら、IIS側は確認されましたか? http://support.microsoft.com/kb/326965/ja IISでも、関連付ける必要があります。
お礼
ご回答ありがとうございます。 サーバー(IIS側)も関連付けしております。 同じソフトをインストールしてサーバー端末でクリックで目的のファイルが開く事を確認しております。 また、サーバー・クライアントともassoc、ftypeコマンドでの関連付けの再設定やレジストリーの確認等も行いましたが、問題ありませんでした。本当に悔しい思いをしております。
補足
その後、解決出来ましたので投稿させていただきます。 原因は、次の通りです。 今回問題となったファイルは、拡張子が「idi」のファイルでしたが拡張子の問題で は無く、SpaseVisionというソフト専用データファイルだったためでした。 このファイルはテキスト(アスキー)ファイルで中身は「HTML」言語と並ぶWeb作成 言語の「XML」形式で書かれたファイルでした。 httpは、自分の知っているファイルは知っている開き方で開き、知らないファイル は、クライアントにダウンロードし開く事ができるプログラムを聞いてきます。 この「XML」ファイルは、HTTPの良く知っているファイルなのです。 つまり、今回のエラーは、httpはXMLファイルを良く知っているのでダウンロードせ ず、自分で開こうとして失敗した訳です。必要なファイル(XSLやXSLTファイル等)が 見つけられずにエラーとなっていました。 ソフト開発メーカーは、XMLに準拠して開発した方が、開発コストを下げられるとい うメリットがある様です。 ただ、この様なhttpが開き方を知っているファイルをネットワーク上に置いてクライ ンとから直接クリックで開くような使い方をする場合は注意が必要です。 今回の様に専用プログラムのファイルの場合は、強制的にクライアントにダウンロー ドして開く必要があります。 Windowsの設定で強制的にダウンロードさせる方法もある様でした上手くいきません でしたので、今回は下記方法で対応しました。 データファイルと同じサーバー上に置いたphpプログラム(作成)へダウンロードし たいファイル名(フルパス)を渡しダウンロードさせる処理です。 http://d.hatena.ne.jp/mrgoofy33/20100921/1285085110 http://www.spencernetwork.org/memo/tips-5.php ← モジュール化されており使 いやすいと思います。(但し下記部分の修正が必要) 尚、上記サンプルの下記部分を変更して使用しました。それぞれの環境に合わせて使 用して下さい。 変更前:header("Content-Disposition: inline; filename=\"".basename($path_file)."\""); 変更後:header("Content-Disposition: Attachment; filename=\"".basename($path_file)."\""); また、これだけでは、phpがダウンロードに失敗する場合があります。(キャッシュ を使います。下記を参考方) http://tkoshima.net/wp/archives/38 session_cache_limiter('public'); ← これを使う場合は、session start 前に記 述する必要があります。 補足: クライアントにダウンロードした特殊な拡張子のファイル(今回の場合は「idi」) は、拡張子とプログラムの関連付けが必要です。 プログラムの関連付けは、Explorerのフォルダオプションからファイルの関連付けを 行います。 また、DOSのコマンドでも設定も可能です。 コマンドは次の通りです。 C:>assoc .idi=idi_auto_file C:>ftype idi_auto_file= "C:\APPLY\prog000.exe" "%1" 拡張子「idi」や"C:\APPLY\prog000.exe"は、対象の拡張子や起動したいプログラム に置き換えてください。 以上、参考になれば幸いです。