概要
IISに公開しているWebアプリ上で別サーバーのフォルダへ参照、アップロードを行う際にエラーが出て苦戦した話
結論
ASP.NETの偽装で解決
構成
わかりづらくてすみません。
どちらもIISでファイルサーバーを仮想ディレクトリとして持っているのは同じ。
違うのはVisualStudioからアプリを動かしているか、IIS上に公開しているかの違いです。
原因
VisualStudioから起動した時のユーザーは、VisualStudioを立ち上げたユーザーのアカウント(=自PCのアカウント)
IISから起動している時のユーザーは、アプリケーションプールIDとなり
ドメインローカルグループに属していないためアクセスできない?
解決法
Web.configに以下記述を追加
Web.config
<identity impersonate="true"
userName="アプリサーバのユーザーネーム"
password="アプリサーバのパスワード">
IISの仮想ディレクトリのパススルー接続にアプリサーバのアカウントを登録
上記設定を行うことでアプリからファイルサーバへの参照、アップロード、ダウンロードが可能になった。
疑問点
仮想ディレクトリとして公開しているファイルサーバはEveryOneに対してフルコントロールを許可しているのにアクセス出来ないのは何故か。
続報あったら追記します。
参考にしたページなど