ASP.net Windows Server 2008 R2のWebサーバーにファイルをアップロードしようとすると、"Access to the path is denied."というエラーが出ます。

ローカルでは問題なく動作しているのですが、アプリケーションをWebサーバに配置すると、「"Access to the path "D:‾Attachments‾myfile.doc" is denied"」というエラーが発生します。アプリケーションを実行しているIIS AppPool"のユーザーには、そのフォルダに対するフルパーミッションを与えました。また、Everyone"にもフルパーミッションを与えましたが、同じエラーが出ました。

アンチウイルスの例外リストにそのフォルダを追加しましたが、同じ結果になりました。もしかしたら、Windows Server 2008 R2では、私のアップロードが機能するためには何か仕掛けが必要なのではないかと思い始めています。ご協力ありがとうございました。

ありがとうございました。

サーバーまたはローカルマシン上のフォルダを右クリックして、フルパーミッションで

IIS_IUSRS

これだけです。

解説 (3)
ソリューション

あなたの asp.net アカウント {MACHINE}\ASPNET はその場所への書き込み権限を持っていません。これが失敗の理由です。

ASP.NETリクエストIDにリソースへのアクセス権を付与することを検討してください。

ダウンロード中のフォルダ Properties > Security Tab > Edit > Add > locations > ローカルマシンを選択 > OKをクリック > ASPNETと入力 "Enter the object name to select" > Check Names をクリックします。 希望するアクセス権(Full Control)のボックスにチェックを入れます。これでうまくいかない場合は、「ネットワークサービス」でも同じことを行います。

これで、ローカルの「{MACHINENAME}\ASPNET」アカウントが表示されるはずなので、このアカウントに書き込み権限を設定します。

そうでない場合、アプリケーションが `を通じてなりすましを行っている場合、なりすまし先は匿名ユーザー(通常はIUSR_MACHINENAME` )または認証されたリクエストユーザーになります。


また、ASP.NETでファイルを保存するための専用の場所として、App_Dataを使用することもできます。これを作成するには、Visual StudioのASP.NETプロジェクトを右クリックし、「Add > Add ASP.NET Folder > App_Data」を選択します。すると、この場所にデータを保存できるようになります。

var path = Server.MapPath("~/App_Data/file.txt");
System.IO.File.WriteAllText(path, "Hello World");
解説 (5)

ネットワークサービスに読み取り権限がないことが原因かもしれません。

サルーションです。

アップロードフォルダを右クリック -> poperty's -> security ->Edit -> add -> type :NETWORK SERVICE -> check box full control allow -> press ok or apply

解説 (2)