ネットワークサービスアカウントは既定で一時ファイルのアクセス許可を受け取る必要がありますか?

StackOverflow https://stackoverflow.com/questions/167605

質問

最近、Webフォームを介してCrystal ReportsからPDFを生成する作業をしていました。失敗していましたが、c:\ windows \ temp dirのアクセス許可設定が原因であると判断しました。 Network Serviceアカウントにこのフォルダーへのフルアクセスを与え、問題を迅速に修正しました。しかし、ネットワークサービスアカウントに既定でこれらのアクセス許可がなかった理由はありますか?

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

WebサーバーはWindows Server 2003です

役に立ちましたか?

解決

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

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

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

他のヒント

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

ネットワークサービスアカウントの使用に関するmsdn 記事 " ASP.NETアプリケーションが他の場所にあるファイルまたはフォルダーを使用する必要がある場合は、アクセスを明確に有効にする必要があると述べています;これにより、一時フォルダーに対するデフォルトの制限は一時フォルダーが選択されたためではなく、IISルートフォルダー以外のすべての場所がデフォルトで制限されていることがわかります。

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

すべてのユーザー(ネットワークサービスを含む)には、ドキュメント&設定。勝者はCRのように振る舞わず、独自の一時スペースを使用します。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top