dポイントプレゼントキャンペーン実施中!

現在、2003Server R2 SP2、IIS6.0で稼動していたVB.Net aspのプログラムを、2008Server、IIS7.0に移行しているのですが、今まで問題なく動作していたファイルの取得が、うまくいかなくなりました。

別のファイルサーバ上(2003Server R2 SP2)に置いてあるxmlファイルを読み込むという動作をさせたいのですが、エクスプローラ上では問題なく開きます。また、VB.Net aspからのステップ実行でも正しく取得出来ているのです。
しかし、ビルドしてIISの規定のフォルダに置き、IEから呼び出すと読み込めず、ファイルが存在しない場合の処理に入ってしまいます・・
試しに2008SV側のローカル上にフォルダを置くと、正しく取得します。

・読み込むフォルダのアクセス権限をEveryOne→フルコントロールに
・2008SVでWindowsFireWallの許可対象に"WorldWideWeb(http)"を追加
 →2003SVではF/Wサービスを停止
・IIS7.0の[アプリケーションプール]
 →右クリック[詳細設定]
 →プロセスモデルのID変更
 →"NetworkService"から"LocalSystem"に変更

上記設定では試してはいるのですが、うまくいきません。
OS、IIS共にバージョンアップしてしまったので、どちらが原因なのか、調査のアタリを付ける方法でも結構です。
どなたかお知恵を貸してください。よろしくお願いいたします。

A 回答 (1件)

IIS7の場合、UNC パススルー認証 を設定すればいけると思いますが、


http://support.microsoft.com/kb/214806/ja
上記は、UNCパス(ネットワークパス)にあるディレクトリを仮想ディレクトリにする方法なので、ちょっと違うのかもしれません。

また、上記に加え、UNC(外部サーバーにアクセスできるログインID)を別途作成し、web.config や問題のデータが格納されている別サーバー に作成したログインIDにアクセス権限を付与してあげればいけそうな気がします。
http://support.microsoft.com/kb/934515/

ちょっと環境がないので試してないんですが、もし上記でもダメだった場合は、またご連絡ください。

参考URL:http://support.microsoft.com/kb/934515/
    • good
    • 1
この回答へのお礼

解決しました。

>・IIS7.0の[アプリケーションプール]
> →右クリック[詳細設定]
> →プロセスモデルのID変更
> →"NetworkService"から"LocalSystem"に変更
上記プロセスIDを、ビルトインユーザからカスタムユーザに
変更(administrator)することで、フォルダアクセスが可能に
なりました。

kero-mio様、ありがとうございました。
同じIISでも、6.0と7.0ではかなり勝手が違いますね。
まぁどちらも素人同然なんですが…
これから、動作を見ながらセキュリティを締めてみます。

お礼日時:2009/06/09 10:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!