FAQ
IToporogicaloperator::constructUnion メソッドにおけるテンポラリファイル生成の仕様について

ナレッジ番号:5244 | 登録日:2023/07/26 | 更新日:2023/12/28

1.ArcObjects のメソッド実行時に作成されるテンポラリファイル

ArcObjects のIToporogicaloperator::constructUnion メソッドは、処理の実行中にテンポラリファイル(ファイ
ル名の頭に「xx」が付く)を作成します。ArcGIS Server のサーバコンテキスト経由で上記メソッドが実行され
る場合、テンポラリファイルが作成される場所(ディレクトリ)はいくつかあり、明示的にディレクトリを指定す
る場合はシステム環境変数「ARCTMPDIR」を用います。

2.テンポラリファイルを作成する場所

メソッドがテンポラリファイルを作成する場所は、以下の優先度によって決定されます。

【優先度1】 --- ARCTMPDIR 変数で指定したディレクトリ

「ARCTMPDIR」という名称のシステム環境変数がWindows に定義されており、ユーザが書き込み権限
を持つディレクトリが設定されていれば、テンポラリファイルはその指定ディレクトリに書き込まれます。
Windows オペレーティングシステムにおいては、システム環境変数は下記の手順で設定できます。
「マイコンピュータ」を右クリック→「詳細設定」タブをクリック→「環境変数」ボタンをクリック

(注1)ARCTMPDIR 変数へ設定するディレクトリは、ArcGIS Server の実行ユーザ(ArcGIS Server
Object Container Account、デフォルトではArcGISSOC という名称)がフルコントロールの権限を持って
いる必要があります。

(注2)ARCTMPDIR 変数で設定するディレクトリパスは、原則としてドライブの直下(ルートディレクトリ)
から2 階層目以下にあるものをご指定ください。

(注3)本変数の使用により動作性能上の問題が生じることはありません。

【優先度2】 --- カレントディレクトリ

ARCTMPDIR 変数が存在しない場合は、テンポラリファイルは「カレントディレクトリ」に書き込まれます。
カレントディレクトリは、サーバコンテキスト経由でメソッドが実行される(=ASP.NET のWeb アプリケーシ
ョンから実行される) 場合、Windows システムディレクトリである「C:\Windows\system32
(%SystemRoot%\system32)」となります。

(注)メソッドがカレントディレクトリにテンポラリファイルを書き込むためには、ArcGIS Server の実行ユー
ザ(ArcGISSOC)が当該ディレクトリに対してフルコントロールの権限を持っている必要があります。

【優先度3】 --- TEMP ディレクトリ

ARCTMPDIR 変数が存在せず、さらにカレントディレクトリへの書き込み権限も無い場合には、テンポラ
リファイルは「TEMP ディレクトリ」に書き込まれます。TEMP ディレクトリとは、Windows のシステム環境変
数「TEMP」に定義されているディレクトリ(デフォルトでは「C:\Windows\Temp」)です。

(注1)メソッドがTEMP ディレクトリにテンポラリファイルを書き込むためには、ArcGIS Server の実行ユ
ーザ(ArcGISSOC)が当該ディレクトリに対してフルコントロールの権限を持っている必要があります。
TEMP ディレクトリに対しても権限が無い場合には、それ以上書き込む先が存在せずにメソッドの処理
がエラーとなります。

(注2)ArcGIS Server のソフトウェアをサーバ機へインストールする過程において、「C:\Windows\Temp」
ディレクトリに対してArcGISSOC ユーザのフルコントロール権限が付与されます。ただし、この処理にお
いて、TEMP 変数の設定は反映されず、「C:\Windows\Temp」固定ですのでご注意ください。

以上

メタデータ

種類

製品