私はlocalhostでWebサイトをホストしており、FileUploadControlを使用してImageServerという別のサーバに画像ファイルをアップロードする必要があります。リモートサーバのフォルダへの書き込み権限
if (FileUploadControl.HasFile)
{
try
{
string filename = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(@"\\ImageServer\" + filename);
}
catch (Exception ex)
{
throw;
}
}
しかし、私は画像を提出しようとするとすぐにこの権限エラーに当たった。
例外の詳細:System.UnauthorizedAccessException: '\ ImageServer \ xxx.jpg'へのアクセスが拒否されました。
ASP.NETは要求されたリソースにアクセスする権限がありません。 ASP.NET要求 アイデンティティへのリソースへのアクセス権を与えると考えてください。 (MACHINE)\ ASPNET(IIS 5ではネットワークサービス、IIS 6ではネットワークサービス)は、アプリケーションが偽装していない の場合に使用されます。アプリケーションが で偽装されている場合、匿名ユーザー(通常はIUSR_MACHINENAME) または認証ユーザー がユーザーIDになります。ファイルへのASP.NETアクセスを許可するには、エクスプローラでファイル を右クリックし、[プロパティ]を選択して[セキュリティ]タブを選択します。 「追加」をクリックして、適切なユーザーまたはグループを追加します。 ASP.NET アカウントをハイライト表示し、必要なアクセスのチェックボックスをオンにします。
ネットワークサービス、IUSR、IIS AppPool \ Image、およびEveryoneにフルコントロールが付与されています。他に何が欠けているのでしょうか?自分のローカルホストにファイルを書き込ませるためにImageServer上の画像フォルダにどのパーミッションを与えるべきかわかりません。
P/S:IIS 7.5
を使用して、両方のサーバーは、手動でWindowsエクスプローラ経由ImageServerの\を\\にファイルをコピーし、メインのトリックはImageServerの\\で指す仮想ディレクトリを作成することです
そのユーザーのフォルダに書き込みアクセス権をチェック... – Madhu