カスタム構成セクションを備えたWebアプリケーションがあります。そのセクションには、暗号化したい情報が含まれています(自分で行うのではなく、ASPNet_RegIISを使用することを望んでいました)。
Web.Config:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<section name="MyCustomSection"
type="MyNamespace.MyCustomSectionHandler, MyAssembly"/>
</configSections>
<configProtectedData>
<providers>
<clear />
<add name="DataProtectionConfigurationProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
processorArchitecture=MSIL"
keyContainerName="MyKeyContainer"
useMachineContainer="true" />
</providers>
</configProtectedData>
<MyCustomSection>
<blah name="blah1">
<blahChild name="blah1Child1" />
</blah>
</MyCustomSection>
構成ハンドラーは、暗号化を試みる前にうまく機能します。私がそれを暗号化しようとすると:
aspnet_regiis -pef "MyCustomSection" c:\ inetpub \ wwwroot \ MyWebsite -prov DataProtectionConfigurationProvider
エラーが発生します:
構成セクションを暗号化しています...MyCustomSectionの構成セクションハンドラーの作成中にエラーが発生しました:ファイルまたはアセンブリ'MyAssembly'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。(c:\ inetpub \ wwwroot \ MyWebsite \ web.config 5行目)
プロバイダーを構成して/なしで試しました。セクショングループあり/なし。事前にウェブサイトを開始した/なし。登録のために一時的にアセンブリをGACに入れてみました。また、log4netセクションを試してみましたが、運が悪かったので、自分のものではないものを試してみました。管理者としてコマンドプロンプトを実行しました。何か案は?または、ASPNet_RegIISをカスタムセクションに使用することはできませんか?
MSDNを表示した後の最後のショットは、2.0で技術的に非推奨になったため(aspnet_regiisバージョンに関するものであると期待して)、IConfigurationSectionHandlerを実装するのではなくConfigurationSectionから継承するようにハンドラーを変更することでした。そこにも運がない。
どんなアイデアでも私に知らせてください。ありがとう!