3

最近、Webフォームを介してCrystal ReportsからPDFを生成する作業をしていました。c:\windows\temp ディレクトリのアクセス許可設定が原因であると判断しました。Network Service アカウントにこのフォルダーへのフル アクセスを許可したところ、問題はすぐに修正されました。しかし、Network Service アカウントが既定でこれらのアクセス許可を持っていない理由はありますか?

Rick Strahl はここでこの質問をします。これを行うことに問題はないように思えますが、Rick は、デフォルトがそのように設定されている理由について明確ではありませんでした。

Web サーバーは Windows Server 2003 です

4

3 に答える 3

1

一時ファイルの作成に関するこの投稿には、Windows 一時フォルダーの使用をサポートするコメントがあります。

ネットワーク サービス アカウントの使用に関する msdn の記事には、「ASP.NET アプリケーションが他の場所にあるファイルまたはフォルダーを使用する必要がある場合は、明示的にアクセスを有効にする必要があります」と記載されています。 temp フォルダーが選択されましたが、IIS ルート フォルダー以外のすべての場所は既定で制限されています。

于 2008-10-07T20:41:39.193 に答える
1

最近では、デフォルトのオプションがより安全なものになる傾向があります。他に理由はないと思います。

私はあなたと同じ問題を抱えていましたが、私の環境では許可を与えて先に進みました。

この投稿は、Path.GetTempPath() などの API を使用する代わりに %WINDIR%\Temp を明示的に参照している Crystal Reports の障害であることを示唆しています。実際、Windows 2003 のネットワーク サービス アカウントで実行すると、Path.GetTempPath() が %WINDIR%\Temp を返すのを見たことがあります。

于 2008-10-03T17:42:05.330 に答える
0

%windows%\ tempは、一般的なテンプやバーフィング用ではありません。CrystalReportsがそのディレクトリを悪用していることは明らかです。これは、開発者が怠惰すぎて管理者アカウント以外でマシンを起動できない場合によく発生します。

すべてのユーザー(ネットワークサービスを含む)には、 [ドキュメントと設定]の下に、完全なアクセス権を持つ独自の一時スペースがあります。勝者はCRのように振る舞うことはなく、独自の一時スペースを使用します。

つまり、win\tempのデフォルトの権限に問題はありません。私はそれが単にWindowsの内部動作のためのものであると信じています。(その場合も、そもそもそのディレクトリが存在していなければ、関係者全員にとってはるかに良いでしょう。)

于 2008-10-05T17:38:42.777 に答える