ASP.NET メンバーシップに Oracle データベースを使用するように IIS Web サイトを構成しようとしていますが、うまくいきません。IIS は、Oracle メンバーシップ プロバイダーを含むアセンブリを読み込むことができないようです。
今のところ私が持っているのはこれです:
- Oracle 10g データベースがオンラインになり、ASP.NET メンバーシップのすべてのテーブルが作成されました。
- ASP.NET のサポートを含む、Web サーバー ロールがインストールされた Windows 2008 R2 Standard。
- Oracle 11g リリース 2 ODAC 11.2.0.1.2インストールされています。インストールされるコンポーネントは、Oracle データ プロバイダー for .NET、Oracle プロバイダー for ASP.NET、Oracle インスタント クライアントです。
- IIS の既定の Web サイト (テスト用に使用しています) には、次の
web.config
ファイルがあります。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<membership defaultProvider="OracleMembershipProvider">
<providers>
<remove name="SqlMembershipProvider" />
<add name="OracleMembershipProvider"
type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=2.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342"
connectionStringName="OracleServer" />
</providers>
</membership>
</system.web>
</configuration>
(簡潔にするために、「add」要素の追加属性は省略されています。また、接続文字列はサーバー全体に対して定義されています。)
- Oracle.Web.dll ファイルは GAC にあります。これが
C:\Windows\Assembly
フォルダの関連部分です:
- Web サイトのアプリケーション プールは .NET 2.0 用に構成されており、32 ビット アプリケーションが有効になっています。
- IIS
administration.config
ファイルで信頼されていないプロバイダーを許可しました (テストのためだけに、後でアセンブリを信頼できるプロバイダー リストに明示的に追加します)。
この設定をすべて行った後、IIS マネージャーの「.NET ユーザー」アイコンをクリックすると、プロバイダーの権限が多すぎるという警告が表示され、同意すると次のメッセージが表示されます。
この操作の実行中にエラーが発生しました。
詳細:
ファイルまたはアセンブリ 'Oracle.Web、バージョン = 2.112.1.2、カルチャ = ニュートラル、PublicKeyToken = 89b483f429c47342' またはその依存関係の 1 つをロードできませんでした。指定されたファイルが見つかりません。
では、何が足りないのでしょうか? Oracle メンバーシップ プロバイダーを動作させるにはどうすればよいのでしょうか?
ありがとう!
アップデート:問題は IIS 自体ではなく、IIS 管理者だけにあるようです。Visual Studio が提供する Web サイト構成ツールを使用すると、すべて正常に動作します。