.NET MVC3アプリケーション内にファイルを格納するために使用するフォルダを作成する必要がありますが、問題はすべてのASP.Netプラットフォームに共通すると思います。 System.UnauthorizedAccessException
が発生したため、フォルダを作成できますが、ファイルを書き込めません。 私はまた、Webアプリケーションを現在実行しているユーザに余分な権限を与えましたが、何も変わりません。コードのasp.netアプリケーションが書き込むことができるMVC3の作成フォルダ
if (!System.IO.Directory.Exists(fullPath))
{
System.IO.Directory.CreateDirectory(fullPath);
var user = System.Security.Principal.WindowsIdentity.GetCurrent().User;
var userName = user.Translate(typeof(System.Security.Principal.NTAccount));
var dirInfo = new System.IO.DirectoryInfo(fullPath);
var sec = dirInfo.GetAccessControl();
sec.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(userName,
System.Security.AccessControl.FileSystemRights.Modify,
System.Security.AccessControl.AccessControlType.Allow)
);
dirInfo.SetAccessControl(sec);
System.IO.Directory.CreateDirectory(fullPath);
}
string fullPathFileName = System.IO.Path.Combine(fullPath, fileName);
System.IO.File.WriteAllBytes(fullPath, viaggio.Depliant.RawFile);
あまりにも悪い、最後の行は常にSystem.UnauthorizedAccessException
を投げる: これはこれまでのところ、私のコードです。 私は自分のアプリでユーザーを偽装しているわけではありません。すべてが定義済みのユーザーのもとで実行されています。 フォルダを作成して、アプリケーションがその中にファイルを作成できるようにするにはどうすればよいですか?
編集:
また、私はApp_Dataに特別なフォルダ内のファイルを保存するようにしようと試みたが、私はまだSystem.UnauthorizedAccessException
エラーが発生しました。誰かがなぜそれが起こっているのか教えていただけますか?
私はApp_Dataフォルダを使用できません。アップロードする必要のあるファイルが大きく、大きなファイルになる可能性があります。私の要件は、アプリケーションのデプロイメントをデータフォルダから切り離すことです。 – themarcuz
さらに、 App_Dataフォルダ(一時的に解決して開発に進む)が動作しません...同じエラーが発生しました – themarcuz
IIS_IUSRSグループにはApp_Dataフォルダへの読み取り/書き込みアクセス権がありますか? –