質問: すみません。 あまり説明が上手くできないと思うのですが... 現在、SOAPによる通信でサーバ(IIS8.5 WindowsServer2012R2 C# ASP.NET .Net4.5)とクライアント(Windows7 C# .Net4.5)の通信を行っています。 VisualStudioを用いて、両者をdebugさせていた時は問題なかったのですが...サーバ環境にdeployしたところ、System.ServiceModel.FaultExceptionが発生してしまいました。 Exceptionのメッセージには `サーバーは要求を処理できませんでした。 ---> パス 'D:\tmp\Setting.xml' へのアクセスが拒否されました。` と出て動作しません。 確かに対象のpathのfileを読み込む処理は含まれているのですが、file自体は存在しており、アクセス制限なども加えておりません。 現在、手立ても無く、検討もつかない状況です。 仕方が無いのでVBox環境にサーバ環境を作りなおしてVisualStudioを突っ込んでみようかとしているところですが、何か原因に心当たりのある方が居られましたら、ご助言お願い致します。
回答: 基本的にはpgrhoさんも書かれている通り、実行しているプロセスのユーザーに問題のファイルのアクセス権があるか、という問題だと思います。 もう少し、わかりやすく言えば、豚吐露さんが問題のSetting.xmlとそのフォルダに対してアクセス権を設定していなくても、IIS上でASP.NETを実行しているアプリケーションプールの実行ユーザーに対して、デフォルトでそのフォルダを読み書きする権限が割り当てられているとは限らないということです。 1. IISの設定で問題のASP.NETアプリが利用しているアプリケーションプールとその実行ユーザーを確認し 2. Explorerで問題のファイルの「プロパティ/セキュリティ/詳細設定/有効なアクセス」を開き、実行ユーザーのアクセス権限があるか確認する 等で実際にそのアプリプロセスがが問題のファイルにアクセスできているのかを確認できるのではないかと思います。