4

ローカル ネットワークの共有フォルダからファイルにアクセスしようとすると問題が発生します。
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 アカウントを強調表示し、必要なアクセスのボックスをオンにします。

誰かが私を助けてください。前もって感謝します。

4

3 に答える 3

1

ファイルシステムへのアクセス権を付与しましたが(これを完全に制御することはできません。読み取りまたは変更は問題ありません)、共有アクセス許可はデフォルトの読み取り専用のままである可​​能性があります。共有権限を変更する必要があります。

詳細については、こちらをお読みください

編集:デバッグ時に問題なく動作する理由は、VSのaspnetアカウントではなく、ログオンしているアカウントを使用しているためです。

IISサーバー上のIIS_WPGグループのメンバーであり、書き戻したい共有に対するアクセス許可を持つサービスアカウントで実行される、新しいアプリプールを作成します(サービスアカウントをパスワードに設定することを忘れないでください)。IIS_WPGグループに、Webサイトのディレクトリに対する読み取りと実行、フォルダーの内容の一覧表示、および読み取りのアクセス許可を付与します。この新しいWebプールで実行するようにWebアプリを変更します。

于 2012-04-23T18:39:12.853 に答える
0

解決策 1:

ドメイン ユーザーを定義できます。IIS サーバーをこのユーザーで実行します (プール ID または 'connect as' を使用)。このユーザーに共有フォルダへのアクセス権を付与します。

解決策 2:

共有フォルダーを含むサーバーのユーザー グループに IIS サーバー アカウントを追加し、このユーザーに共有フォルダーへのアクセス権を付与します。

于 2013-09-30T03:43:26.367 に答える