2011-09-14 12 views
1

私はasp.netでファイルをアップロードして特定のパスを保存しようとしています。 Windowsユーザー。ファイルアップロードC#asp.net

それは私にエラーを出力している:

System.UnauthorizedAccessException was unhandled by user code 
    Message=Access to the path 'C:\Users\USER\Desktop\fyp2\CMS TEST4\CMS\CMS\Upload' is denied. 

私のコードは次のとおりです。

var guid = Guid.NewGuid(); 
if (File.HasFile) 
{ 
    var length = File.PostedFile.FileName.ToString().Length; 
    var ind = File.PostedFile.FileName.ToString().IndexOf('.'); 
    var sdfs=guid.ToString()+File.PostedFile.FileName.ToString().Substring(ind, length - ind); 
    File.PostedFile.SaveAs("C:\\Users\\USER\\Desktop\\fyp2\\CMS TEST4\\CMS\\CMS\\Upload"); 

} 
+1

つまり、Webサーバーを実行しているアカウントは、そのフォルダにアクセスできません。 –

答えて

3

ASP.NETワーカープロセスには、そのパスへのアクセス権がありません。既定では、IISワーカープロセスはネットワークサービスアカウントで実行されると考えられます。このアカウントにフォルダの書き込み権限を追加するか、別のID(書き込み権限を持つユーザー)を持つ新しいアプリケーションプールを設定することができます。

3

エラーがそれを置くような単純な、あなたのアプリケーションが適切な書き込み権限を持っているフォルダが必要です。

これはWebアプリケーションです。その場合、アプリケーションを実行するためにIISが使用するユーザーには、指定したフォルダに対する書き込みアクセス許可が必要です。

3

ユーザーディレクトリはかなりロックダウンされています。 Webサーバーが実行されているアカウントが指定されたユーザーでない場合、既定ではパスにアクセスできません。 Webサーバーを実行しているアカウントにそのパスへの明示的なアクセスを許可するか、そのパスの外部に適切なアクセス許可を持つフォルダを作成してユーザーのデスクトップにリンクを作成することができます。

1

現在のユーザーは保存する権限がありません。書き込む前に、FileSystemRightsAccessControlType.Allowを使って、目的地の許可情報を知ってください。

関連する問題