sql >> データベース >  >> RDS >> Oracle

ASPメンバーシップの奇妙な問題

    ここに古い質問がありましたが、私はそれに遭遇し、もう少し詳細を共有したいと思いました。

    まず、<clear/>を実行する必要がある場合の最も簡単な解決策 connectionStringsブロックで、空白のOraAspNetConString接続文字列エントリをweb.configに追加し直します。

    <connectionStrings>
        <clear />
          <add name="OraAspNetConString" connectionString=" "/>    
    </connectionStrings>
    

    Oracle.NETパッケージをインストールするとどうなりますか> どのマシンでも、マシンレベルのconnectionStringとしてOraAspNetConStringとともに、多数の異なるプロバイダーがmachine.configにインストールされます。 <clear/> elementはそのOraAspNetConStringを取り除き、Oracleのmachine.configの追加のおかげで、デフォルトでロードされている他のすべてのOracleプロバイダーは、connectionStringが見つからないとクラッシュします。

    machine.configに追加された他のほとんどのOracleプロバイダーが引き続きそのOraAspNetConStringを探しているため、メンバーシッププロバイダーの要素を使用して調査した他の回答は機能しませんでした。 そのため、1つのプロバイダーだけをクリアしても役に立ちません。

    これらはすべて、私のmachine.configにインストールしたプロバイダーです:

    <membership><providers>
        <add name="OracleMembershipProvider" type="Oracle.Web.Security.OracleMembershipProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName="" />
    </providers></membership>
    <profile><providers>
        <add name="OracleProfileProvider" type="Oracle.Web.Profile.OracleProfileProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName=""/>
    </providers></profile>
    <roleManager><providers>
        <add name="OracleRoleProvider" type="Oracle.Web.Security.OracleRoleProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName=""/>
    </providers></roleManager>
    <siteMap><providers>
        <add name="OracleSiteMapProvider" type="Oracle.Web.SiteMap.OracleSiteMapProvider, Oracle.Web, Version=4.112.2.0, 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.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" applicationName=""/>
        </providers>
      </personalization>
    </webParts>
    <healthMonitoring><providers>
        <add name="OracleWebEventProvider" type="Oracle.Web.Management.OracleWebEventProvider, Oracle.Web, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" connectionStringName="OraAspNetConString" buffer="true" bufferMode="OracleNotification"/>
    </providers></healthMonitoring>
    

    したがって、空白のOraAspNetConStringを追加したくない場合は、<clear/>のいずれかを確認する必要があります。 次のすべてのOracleプロバイダーにアクセスするか、<remove name=x />を追加します。 次のような各プロバイダークラスの要素:

    <membership><providers>
        <remove name="OracleMembershipProvider" />
    </providers></membership>
    <profile><providers>
        <remove name="OracleProfileProvider" />
    </providers></profile>
    <roleManager><providers>
        <remove name="OracleRoleProvider" />
    </providers></roleManager>
    <siteMap><providers>
        <remove name="OracleSiteMapProvider" />
    </providers></siteMap>
    <healthMonitoring><providers>
        <remove name="OracleWebEventProvider" />
    </providers></healthMonitoring>
    

    WebアプリでsiteMapまたはHealthMonitoringコードを処理したことはありませんが、これらの<remove/>を手動で追加する必要がありました。 web.configのさまざまなプロバイダーの要素などがクラッシュし、そこにないOraAspNetConString接続文字列を探していました。



    1. csvファイルからのデータのインポート

    2. MySQLの検索と置換の構文エラー

    3. 間隔を分に変換する

    4. PostgreSQL:大文字と小文字を区別しない文字列の比較