0

ASP.net アプリによって開始されたビジネス プロセスの出力として、サーバー テキスト ファイルを作成する必要がありました。コードを記述するテキスト ファイルは、標準のストリーム コードを使用したライブラリ ファイルにあります。

IDEですべて正常に機能しました。

パブリッシュし、ファイルを書き込もうとして失敗します。IIS は、ファイル システムへの書き込みに消極的です。

色々と調べて毛を引っ張った結果、ようやく解決に至りました。これはきれいではなく、Web サーバーを制御できる状況でのみ適用できます。

4

2 に答える 2

0

解決策: c:\inetpub\wwwroot\mywebapp\myOutputFileDirectory の物理パスを使用して、Web サーバー上に物理ディレクトリを作成します。

ディレクトリを指す仮想ディレクトリを作成します。

Windows エクスプローラーを使用して、物理ディレクトリへの書き込み権限を IIS_IUSRS に付与します。

Streamwriter コードで c:\inetpub\wwwroot\mywebapp\myOutputFileDirectory の物理パスを使用します。

セキュリティを整理すれば、おそらく仮想パスは LAN 全体でより適切な場所を指している可能性がありますが、私はこの小さなクラムを感謝の気持ちで受け入れるのに十分なほど打ちのめされています。

于 2012-06-21T23:40:03.247 に答える
0

ちょうどあなたの答えを見ました。

アプリケーションが実行されているユーザーに対してセキュリティ許可が正しく設定されている限り、それはinetpubまたはwwwrootディレクトリ内にある必要はありません。

しかし、これは実際には望ましいことです。どこでも書き込みアクセスを許可することの結果を想像するだけではありません。

また、仮想ディレクトリは必要ありません。C:\ProcessOutput のようなディレクトリを作成し、それに応じてアクセス許可を付与すると、問題なく動作するはずです。もう 1 つのオプションは、サービス アカウントを作成し、その出力ファイルを書き込む必要がある場合にのみ、アプリケーション内でそのユーザーとして偽装することです。

于 2012-06-21T23:52:39.153 に答える