ローカル ネットワークの共有フォルダからファイルにアクセスしようとすると問題が発生します。
Visual Studio でアプリケーションを実行すると正常に動作し、ファイルをダウンロードできますが、アプリケーションを IIS に展開すると、まったく動作しません。
NETWORK SERVICE と IIS_USR を含むすべてのユーザーに完全なアクセス許可を与えているため、理由がわかりません。
私は現在、これをテストするために自分のコンピューターを使用しています。Windows 7 があり、IIS 7.5 を実行しています。アクセスしようとしている共有フォルダは、IIS がインストールされていない Windows Vista インストール上にあります。
ファイルをダウンロードするコードは次のとおりです。
protected void button_Click(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=S10.png");
Response.WriteFile(@"\\192.168.1.82\Machine\file.png");
Response.End();
}
次のエラーが表示されます。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.UnauthorizedAccessException: Acesso negado ao caminho '\192.168.1.82\Machine\file.png'.
ASP.NET は、要求されたリソースへのアクセスを許可されていません。リソースへのアクセス権を ASP.NET 要求 ID に付与することを検討してください。ASP.NET には、アプリケーションが偽装されていない場合に使用されるベース プロセス ID (通常、IIS 5 または IIS 6 および IIS 7 のネットワーク サービスの {MACHINE}\ASPNET、および IIS 7.5 の構成済みアプリケーション プール ID) があります。アプリケーションが を介して偽装している場合、ID は匿名ユーザー (通常は IUSR_MACHINENAME) または認証された要求ユーザーになります。
ファイルへの ASP.NET アクセスを許可するには、エクスプローラーでファイルを右クリックし、[プロパティ] を選択して、[セキュリティ] タブを選択します。[追加] をクリックして、適切なユーザーまたはグループを追加します。ASP.NET アカウントを強調表示し、必要なアクセスのボックスをオンにします。
誰かが私を助けてください。前もって感謝します。