ネットワークサービスアカウントは既定で一時ファイルのアクセス許可を受け取る必要がありますか?
-
03-07-2019 - |
質問
最近、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%\ temp は、一般的なテンプやバーフのためのものではありません。 Crystal Reportsがそのディレクトリを悪用しているのは明らかです。これは、開発者が管理者アカウント以外でマシンを起動するのが面倒な場合によく起こります。
すべてのユーザー(ネットワークサービスを含む)には、ドキュメント&設定。勝者はCRのように振る舞わず、独自の一時スペースを使用します。
要するに、win \ tempのデフォルトのアクセス権に問題はありません。私はそれが単にWindowsの内部動作のためのものであると信じています。 (そのディレクトリがそもそも存在しなかったなら、関係者全員にとってはるかに良いでしょう。)