gpt4 book ai didi

asp.net - ASP 成员(member)资格奇怪的问题

转载 作者:行者123 更新时间:2023-12-04 22:38:42 25 4
gpt4 key购买 nike

我在 ASP .NET 中使用 Membership API,我在登台服务器上遇到了以下问题。该应用程序在我的本地机器上运行良好。数据表存储在 SQL Server 上。我的本地服务器和登台服务器都指向同一个数据库服务器。当我部署到我的登台服务器时,我收到以下错误:

 Parser Error Message: The connection name 'OraAspNetConString' was not 
found in the applications configuration or the connection string is empty.

Line 135: <roleManager>
Line 136: <providers>
Line 137: <add name="OracleRoleProvider"

type="Oracle.Web.Security.OracleRoleProvider, Oracle.Web, Version=2.111.6.20,
Culture=neutral, PublicKeyToken=89b483f429c47342"
connectionStringName="OraAspNetConString" applicationName="" />
Line 138: <add name="AspNetSqlRoleProvider"
connectionStringName="LocalSqlServer" applicationName="/"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
Line 139: <add name="AspNetWindowsTokenRoleProvider"
applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider,
System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a" />


Source File:
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config
Line: 137

我不知道为什么它甚至试图对 Oracle 做任何事情,我的 web.config不包含与 Oracle 相关的任何内容。

有没有人知道为什么会这样?

[编辑]
在我的本地机器的 machine.config 上,我没有 OracleRoleProvider 键。但是我的登台服务器可以。如果这有帮助。

最佳答案

这里是老问题,但我刚刚遇到它并想分享更多细节。

首先,如果您需要执行 <clear/>,最简单的解决方案在您的 connectionStrings block 中是将一个空白的 OraAspNetConString 连接字符串条目添加回您的 web.config:

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

当您 install the Oracle .NET package 时会发生什么在您的任何机器上,它都会将大量不同的提供程序安装到您的 machine.config 中,并将 OraAspNetConString 作为机器级连接字符串。 <clear/> element 摆脱了那个 OraAspNetConString 并且由于 Oracle 的 machine.config 添加,默认情况下加载的所有其他 Oracle 提供程序在找不到连接字符串时都会崩溃。

您在此处探索使用成员资格提供者的元素的另一个答案不起作用,因为添加到 machine.config 中的大多数其他 Oracle 提供者仍在寻找 。 OraAspNetConString 因此,仅清除一个提供商对您没有帮助。

这些是他们安装到我的 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>

我从未在我的网络应用程序中处理过任何站点地图或健康监控代码,但我仍然必须手动添加这些 <remove/>我的 web.config 中不同提供程序的元素,或者在寻找不存在的 OraAspNetConString 连接字符串时会崩溃。

关于asp.net - ASP 成员(member)资格奇怪的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/651385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com