1

ASP.NETアプリケーションのファイルに突然アクセスする際に問題が発生しました。共有上にあるファイルにアクセスできません(Webサーバーとは異なるサーバー)。

たとえば、私の開発マシンは「A」です。サーバー「B」からアクセスするファイルがあります。

asp.netでコードを書くと、デバッグモードで正常に動作します。しかし、IIS 7.5に展開すると、許可されていない例外が発生します。

コードの一部:

protected void Button1_Click(object sender, EventArgs e)
{           
    string filepath = @"\\ServerB\MyDocs\{0}"; //Here MYDocs folder is a shared folder in ServerB
    string filename = "Resume.pdf";

    string fileFullName = String.Format(filepath,filename);
    Response.TransmitFile(fileFullName);            
}

デバッグモードで実行するとPDFドキュメントがIEで開きますが、展開すると開きません。

ほとんどのGoogleページには、IIS7.5のアプリケーションプールIDで実行されると書かれています。しかし、他に何を変更する必要があるのか​​理解できませんでした。

注:匿名認証->アプリケーションプールIDで実行しています

4

2 に答える 2

1

認証の問題の解決策を見つけました。

問題は、私の Web サーバーが Windows 2008 R2 で、ファイル共有が Windows 2003 サーバーにあることでした。「IIS AppPool\DefaultAppPool」ID を使用して実行されているアプリケーション。ただし、このユーザーは Windows 2003 Server では使用できません。

アプリケーション プールの ID を「Network Service」に変更し、2003 サーバーで「NetworkService」ユーザーにアクセス許可を与えました。これで、ファイル アプリケーションを開くことができます。

このサイトでこの有用な情報を見つけました: http://www.element-it.com/OnlineHelpHTTPCommander/Windows/ntfs.html

于 2012-07-10T14:13:41.123 に答える
0

次のいずれかを試してください。

ネットワーク ドライブを作成し、そのドライブ文字を使用する

string filepath = @"Z:\{0}";

Google で「network dirve mapping」を検索してみてください。あなたはたくさんの結果を見つけるでしょう。

または、アプリケーション プールを実行しているユーザーにアクセス権を与えることができます。

また、アプリケーション プールのクラシック モードを使用していないかどうかを確認します。

于 2012-07-05T16:21:52.173 に答える