1

Webrootのフォルダーに書き込もうとしているASP.NETv4Webアプリを開発しました。

私の人生の間、Windows 7にファイルの書き込みを許可させることができず、毎回AccessisDeniedエラーが発生します。

私がフォルダで試したことは

attrib -r /foldernameandpath
attrib -r -s /foldernameandpath
Removing Check from ReadOnly attribute in folder properties
Changed owner to folder to current user whom is also the admin
Changed owner to Everyone
Adding Everyone user to folder with all permissions
Changing the folder to the Public Document directory
Changing to the root of the C drive (Out of desperation)

何も機能していないようです。私がやりたいのは、書き込みが機能することをテストすることだけです。

これで、システムが機能し、正常に書き込まれることがわかりました。これは、同じWebアプリを2台目のマシンにインストールして、PDFをCドライブに問題なく書き込んでいたためです。この2番目のマシンは、書き込みを許可するために取得できません。

4

1 に答える 1

4

ああ、聖なるものすべてを愛してください。キーボードとマウスを下に置いて、あなたがしていることをやめてください。あなたのリストにある行動のいくつかは私をひどく怖がらせます。あなたの行動としてあなたがリストするすべてのものは、ほとんどの場合、役に立たないか、せいぜい必死にランダムです。Web開発者は、フォルダの所有権の変更をいじくり回す必要はありません。特に、Webサーバーで通常使用されるWebルートフォルダはそうではありません。そうすると、暗くて寒くて寂しい場所になってしまいます。主はあなたが取った他の必死の措置を知っているだけです。あなた自身のために、私はあなたが健康な状態にあることを確認するためにシステムの復元またはシステムの再インストールを行うことをお勧めします。

一歩戻って、あなたがしていることを整理してみましょう。
最初に:あなたが書き込もうとしているパスは何ですか?
2番目:このアプリケーションをVisual Studio内から直接実行していますか、それともIIで実行していますか?

最初のオプションを実行している場合、現在のユーザーアカウントは、問題のパスに書き込もうとしているアカウントです。そこに書き込み権限がありますか?
試すことができる1つのことは、昇格されたアクセス許可でVisual Studioを起動し、それが機能するかどうかを確認することです。IIで実行している場合、書き込み権限が必要なのは関連するプールアカウントです。万が一、なりすましをしていますか?その場合は、偽装されたアカウントに適切な権限があることを確認してください。

たとえば、.. \ App_Dataなど、アプリパス内の事前定義されたフォルダーにのみ書き込む必要があります。

実行しているアカウントを見つけて、書き込もうとしているパスを判別する最も簡単な方法は、SysIntenals プロセスモニターを起動し、結果を含むエントリを見つけるaccess deniedことです。そのエントリのプロパティを選択し、書き込みアクションを実行しようとしたアカウントを見つけます。それが決まったら、問題のフォルダを右クリックして、適切なアカウントへの書き込み権限を付与します。

于 2012-07-03T21:47:10.150 に答える