1.5 Oracle Providers for ASP.NETのインストール
Oracle Providers for ASP.NETは、Oracle Data Access Components(ODAC)の一部であり、OTNからダウンロードできます。
-
NuGet
NuGetは、Microsoft.NET用のソフトウェア・パッケージング方法です。これは、開発者や管理者に人気のある自動化されたインストールおよび設定の方法を提供するものであり、Oracle Providers for ASP.NETのインストールに使用できるようになりました。
-
Microsoft Windows Installer
Microsoft Windows Installer (MSI)は、Windowsベースのソフトウェアのための一般的な標準インストール方法です。これは、Oracle Providers for ASP.NETのデプロイに使用できます。
-
XCopy
管理者は、XCopyを使用してOracle Providers for ASP.NETを多数のコンピュータに本番デプロイ用にデプロイします。インストールおよび設定中のフットプリントが小さく、また、ファイングレイン・コントロールがあります。
-
Oracle Universal Installer
開発者またはユーザーは、Oracle Universal Installerを使用して自動GUIインストールを行います。XCopyのデプロイに含まれていないドキュメントおよびサンプル・コードが含まれています。
注意:
この項では、Oracle Universal Installerを使用したインストールについて説明します。XCopyによるインストール手順および構成については、インストールに含まれているREADMEファイルを参照してください。
マシン全体構成
マシン全体のOracle Providers for ASP.NET構成を選択した場合、インストーラの動作は次のようになります。
-
Oracle.Web.dll
を使用するようmachine.config
を更新します。 -
Oracle.Web.dll
をGAC_MSIL
に配置します。 -
ポリシーDLLを
GAC_MSIL
に配置します。ここでは、新しいOracle.Web.dll
を使用するためにAnyCPUアプリケーションがリダイレクトされます。
したがって、手動変更の必要なく、古いOracle ASP.NETプロバイダ・バージョンを使用していた既存のアプリケーションで、新しくインストールされたバージョンが使用されるようになります。これらの変更点は、Oracle Providers for ASP.NET 2.0およびOracle Providers for ASP.NET 4に加えられます。
マシン全体構成は、Oracle Universal InstallerおよびXcopyインストールのみで使用可能です。
非マシン全体構成
マシン全体のOracle Providers for ASP.NET構成を選択しない場合、インストーラの動作は次のようになります。
-
Oracle.Web.dll
を使用するためのmachine.config
更新を実行しません。 -
Oracle.Web.dll
をGAC_MSIL
に配置しません。 -
新しい
Oracle.Web.dll
を使用するためにAnyCPUアプリケーションをリダイレクトする、GAC_MSIL
にポリシーDLLを配置しません。
したがって、既存のアプリケーションでは、手動でそれらを変更しないかぎり、新しくインストールしたバージョンではなく現在のOracle Providers for ASP.NETアセンブリ・バージョンが引き続き使用されます。
マシン全体構成を選択しない場合に、新しくインストールしたOracle.Web.dll
をアプリケーションで使用するには、次の手動手順が必要となります。
新しいバージョンのOracle.Web.dll
を、GACに配置しないことを選択した後にアプリケーションで使用するためには、まず、Oracle.Web.dll
およびOracle.ManagedDataAcces.dll
をアプリケーション・ディレクトリにコピーする必要があります。
次に、新しいOracle.Web.dll
を参照するために、web.config
内に正しい構成が必要となります。ここでは、すべてのプロバイダをOracle.Web.dll
バージョン4.121.2.1を使用するよう構成することが求められる場合の、web.config
の内容の例を示します。
<configuration> <system.web> <membership> <providers> <add name="OracleMembershipProvider" type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" /> </providers> </membership> <profile> <providers> <add name="OracleProfileProvider" type="Oracle.Web.Profile.OracleProfileProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" /> </providers> </profile> <roleManager> <providers> <add name="OracleRoleProvider" type="Oracle.Web.Security.OracleRoleProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" /> </providers> </roleManager> <siteMap> <providers> <add name="OracleSiteMapProvider" type="Oracle.Web.SiteMap.OracleSiteMapProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" securityTrimmingEnabled="true" /> </providers> </siteMap> <webParts> <personalization> <providers> <add name="OraclePersonalizationProvider" type="Oracle.Web.Personalization.OraclePersonalizationProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" /> </providers> </personalization> </webParts> <healthMonitoring> <providers> <add name="OracleWebEventProvider" type="Oracle.Web.Management.OracleWebEventProvider, Oracle.Web, Version=4.121.2.1, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" buffer="true" bufferMode="OracleNotification" /> </providers> </healthMonitoring> </system.web> </configuration>
新しいOracle.Web.dll
バージョンを使用するようアプリケーションを更新できることと、Oracle Providers for ASP.NET用のNuGetパッケージをインストールすることでweb.config
を適切に構成できることに注意してください。
また、Oracle Providers for ASP.NET動的ヘルプがVisual Studioに登録され、Visual Studio動的ヘルプとシームレスに統合されるコンテキスト依存のオンライン・ヘルプが提供されます。動的ヘルプを使用すると、ユーザーは、Oracle Providers for ASP.NETのキーワードにカーソルを置き、[F1]ファンクション・キーを押すことで、Visual Studio内でOracle Providers for ASP.NETのマニュアルにアクセスできます。
Oracle Providers for ASP.NETをインストールすると、次の2つの追加設定タスクが必要になります。
関連項目:
-
詳細は、「ASP.NETクライアントの設定」を参照してください。
-
インストール手順については、Microsoft Windows用のOracle Databaseインストレーション・ガイド を参照してください。
1.5.1 データベース・サーバーの設定
次の各項では、プロバイダの構成方法について説明します。
1.5.1.1 設定に必要なデータベース権限
Oracleデータベースを設定するには、データベース管理者はOracle Providers for ASP.NETスキーマに次のデータベース権限を付与する必要があります。これらの権限によって、表、ビュー、ストアド・プロシージャおよびOracle Providers for ASP.NETで必要なその他のデータベース・オブジェクトを作成するためのスキーマ権限が付与されます。これらのスクリプトは、ASP.NETプロバイダの状態情報が格納され、ASP.NETプロバイダ自体によってその情報が取得されるデータベースに対して実行する必要があります。これらのSQLスクリプトは、SQL*Plusを使用して実行するか、Oracle Developer Tools for Visual Studio内から実行できます。
Oracle Providers for ASP.NETでは、設定中に次の権限が必要です。
-
通知を変更する
-
ジョブを作成する
-
プロシージャを作成する
-
パブリック・シノニムを作成する
-
ロールを作成する
-
セッションを作成する
-
表を作成する
-
ビューを作成する
-
パブリック・シノニムを削除する
-
Oracle表領域へのアクセス権を付与し領域を割り当てる
すべてのデータベース権限が、Oracle Providers for ASP.NETのランタイム操作に必要なわけではありません。データベース管理者は、必要に応じて選択的に権限の付与と取消しができます。ランタイム操作では、すべてのプロバイダでスキーマ・ユーザーにCREATE
SESSION
権限を付与する必要があります。また、実行中は、サイト・マップ・プロバイダとキャッシュ依存性プロバイダに、CHANGE
NOTIFICATION
権限が必要です。残りの権限は、インストールおよび削除のためにのみスキーマ・ユーザーに付与し、ランタイム操作の際には取り消すことができます。
設定スクリプトの実行中に発生したエラーは、ユーザーに前述の権限を付与する必要があることを示している場合があります。この場合、データベース管理者は、その権限を付与する必要があります。Oracle Database 10g以降のデータベースの場合、Oracle Session State Provider for ASP.NETにはCREATE JOB
権限が必要です。
1.5.1.2 すべてのOracle Providers for ASP.NETの構成
データベース内で一度にすべてのプロバイダを構成するには、InstallAllOracleASPNETProviders.sql
を実行します。このスクリプトは、ORACLE_BASE\\ORACLE_HOME
\ASP.NET\sql
ディレクトリにあります。
1.5.1.3 Oracle Providers for ASP.NETの個別構成
アプリケーションですべてのOracle Providers for ASP.NETを必要としない場合があるため、プロバイダは個別に設定することができます。Oracle Session State ProviderおよびOracle Cache Dependency Providerを除き、インストール・スクリプトInstallOracleASPNETCommon.sql
を、その他のインストール・スクリプトの前に実行する必要があります。次に、各Oracle Provider for ASP.NETに対して、そのプロバイダに固有のSQLスクリプトを実行する必要があります(順番は問いません)。
これらのインストール・スクリプトは、ORACLE_BASE\\ORACLE_HOME
\ASP.NET\sql
ディレクトリにあります。
表1-2 インストール・スクリプト
プロバイダ | 必要なインストール・スクリプト |
---|---|
Oracle Membership Provider |
|
Oracle Personalization Provider |
|
Oracle Profile Provider |
|
Oracle Role Provider |
|
Oracle Session State Provider |
注意: このプロバイダが実行する必要があるのは |
Oracle Site Map Provider |
|
Oracle Web Events Provider |
|
Oracle Cache Dependency Provider |
スクリプトの実行は不要です |
1.5.1.4 設定に関する一般情報
Oracle Providers for ASP.NETのインストール・スクリプトを実行する際には、同じディレクトリにある対応する.plb
スクリプトが順に実行されます。.plb
スクリプトにより、プロバイダが使用するストアド・プロシージャとストアド・ファンクションが作成されます。インストール.sql
スクリプトは、.plb
ファイルにアクセスできる場所で実行する必要があります。
各プロバイダは、インストール・スクリプトから作成されたデータベース・オブジェクトを削除するための対応するアンインストール・スクリプトも提供します。これらのスクリプトには、Uninstall
という接頭辞が付いています。
インストールおよびアンインストール・スクリプトは、Oracle Providers for ASP.NET 2.0およびOracle Providers for ASP.NET 4用と同じです。
1.5.2 ASP.NETクライアントの設定
インストール終了後、開発者は、ASP.NETの状態情報を格納および取得するデータベース・スキーマへの接続情報を指定する必要があります。このステップでは、開発者は必要に応じてUser
Id
、Password
、Data
Source
、およびその他の接続文字列情報を指定する必要があります。開発者は、次の例に類似したエントリをmachine.config
ファイルに指定できます。
<connectionStrings> <add name="OraAspNetConString" connectionString="User Id=aspnet;Password=aspnet;Data Source=oracle; " /> </connectionStrings>
オプションで、開発者はmachine.config
の<system.web>
セクションに指定された各ASP.NETプロバイダのプロパティをカスタマイズできます。
machine.config
は、マシン全体構成によって自動構成されますが、web.config
ファイルを使用すれば、開発者はOracle Providers for ASP.NETに対してさらに詳細なアプリケーション・レベルの制御を適用できます。このファイルはmachine.config
ファイルのエントリより優先されます。開発者は、machine.config
ファイルと同じXML構文を使用してweb.config
ファイルを設定できます。
開発者は、標準のASP.NET管理ツールを使用して、Oracle Providers for ASP.NETを構成できます。特に、Internet Information Services管理コンソールを使用できます。コンソールのASP.NET構成設定では、Oracleプロバイダの設定を変更できます。あるいは、Visual StudioのWebサイト・プロジェクトで、「Webサイト」メニュー・アイテムからASP.NET構成を選択することで、特定のWebサイト・プロジェクトに対してこれらの設定ができます。
マシン全体構成のインストールにより、自動的にmachine
.config
がデフォルト値で設定されますが、管理者は、その設定を変更できます。ユーザーは、OraProvCfg
ユーティリティを使用して、machine.config
ファイル内のプロバイダ固有のエントリを次のように構成できます。
注意:
Oracle Providers for ASP.NET 2.0を構成するには、ORACLE_BASE\ORACLE_HOME\
ASP.NET\Bin\2.x
にあるOraProvCfg
ユーティリティを使用します。
Oracle Providers for ASP.NET 4を構成するには、ORACLE_BASE\ORACLE_HOME\
ASP.NET\Bin\4
にあるOraProvCfg
ユーティリティを使用します。
-
OraProvCfg
ユーティリティのヘルプを表示するには、次のようにします。OraProvCfg -help
-
Oracle Providers for ASP.NET固有のエントリを
machine.config
ファイルに追加するには、次のようにします。OraProvCfg /action:config /product:aspnet /component:all /frameworkversion:v2.0.50727 /providerpath:c:\Oracle\odp.net\bin\2.x\Oracle.Web.dll
Frameworkバージョンおよびプロバイダのパスは(特に)状況に合せて変更する必要があります。
-
Oracle Providers for ASP.NET固有のエントリを
machine.config
ファイルから削除するには、次のようにします。OraProvCfg /action:unconfig /product:aspnet /component:all /frameworkversion:v2.0.50727
Frameworkバージョンは状況に合せて変更する必要があります。