SQL Server Compact 4.0を使っているASP.NETアプリケーションを配置する際の注意点
ASP.NETアプリケーションで[新しい項目の追加]から「SQL Server Compact 4.0 ローカル データベース」を追加すると、以下のようなダイアログが表示され、sdfファイルはApp_Dataフォルダに配置されます。
Visual Studio開発サーバーではなく、IIS上で実行する場合にはApp_Dataフォルダに対してASP.NETワーカープロセスのアカウントのアクセス権が必要になります。このASP.NETワーカープロセスの既定のアカウントはOSのバージョンによって異なるため注意が必要です。
OS | 既定のASP.NETワーカープロセスアカウント |
---|---|
Windows 2000 Windows XP |
ASPNET |
Windows Server 2003 Windows Vista Windows Server 2008 |
NETWORK SERVICE |
Windows Vista SP2 Windows Server 2008 SP2 Windows 7 Windows Server 2008 R2 |
アプリケーションプールIDアカウント |
アプリケーションプールIDアカウントとはアプリケーションプールごとに作られる仮想アカウントで、そのアカウント名はアプリケーションプール名と同一です。ただし、仮想アカウントであるため、通常のユーザー一覧には表示されません。[名前の確認]において「IIS AppPool\DefaultAppPool」のように入力する必要があります。
このことは以下のページで説明されています。
なお、Visual Studio 2010の[Webの発行]機能を使用してIISに配置すると、App_Dataフォルダには自動的にDefaultAppPoolアカウントの「読み取り」と「書き込み」の権限が設定されます。ただし、DefaultAppPoolアプリケーションプールの.NET Frameworkバージョンは既定ではv2.0となっており、v4.0のアプリケーションプール名はASP.NET v4.0です。「IIS AppPool\ASP.NET v4.0」というアカウントにアクセス権を付与する必要があります。
もしくはVisual Studio開発サーバーではなくIISを開発サーバーに設定し、[Web のパッケージ化/発行]の[配置する項目(Web 配置にのみ適用)]で[IIS で構成された IIS 設定を含める]と[この Webプロジェクトで使用するアプリケーション プール設定を含める]のチェックボックスをチェックして[Webの発行]を行えば、「IIS AppPool\ASP.NET v4.0」のアクセス権も自動的に作成されます。