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.dllGAC_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.dllGAC_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つの追加設定タスクが必要になります。

関連項目:

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

InstallOracleMembership.sql

Oracle Personalization Provider

InstallOraclePersonalization.sql

Oracle Profile Provider

InstallOracleProfile.sql

Oracle Role Provider

InstallOracleRoles.sql

Oracle Session State Provider

InstallOracleSessionState.sql

注意: このプロバイダが実行する必要があるのはInstallOracleSessionState.sqlスクリプトのみです。InstallOracleASPNETCommon.sqlを実行する必要はありません。

Oracle Site Map Provider

InstallOracleSiteMap.sql

Oracle Web Events Provider

InstallOracleWebEvents.sql

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 IdPasswordData 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バージョンは状況に合せて変更する必要があります。