【问题标题】:ASP.NET Universal Providers 1.2 - "The connection name 'LocalSqlServer' was not found"ASP.NET Universal Providers 1.2 - “找不到连接名称‘LocalSqlServer’”
【发布时间】:2012-08-18 11:33:40
【问题描述】:

我正在尝试使用来自http://nuget.org/packages/System.Web.Providers 的“ASP.NET Universal Providers 1.2” 使用 Visual Studio 2010 和 Sql Server 2008

一切都可以在我的本地开发盒上找到。但是,但是当我将代码部署到 DEV 服务器时,我在第一次访问网站时收到以下错误(我在应用程序启动中有创建默认角色和默认会员用户(如果不存在)的代码):

“在应用程序配置中未找到连接名称'LocalSqlServer'或连接字符串为空。”

我创建了 sql 脚本来创建 SqlMembershipProvider 表(当提供程序在本地正确运行时,从临时数据库进行反向工程)。那里有正确的表,并且使用我的开发箱上的主 sql 服务器实例可以正常工作。

我不确定它为什么要尝试使用远程 DEV 服务器上的旧提供程序。我假设它是一个权限错误。在我的开发箱上,我是一名管理员,并且正在使用集成安全性。对于 DEV 服务器,我使用的是 SQL Server 帐户(请参阅下面的连接字符串),该帐户作为 SELECT INSERT UPDATE DELETE perms 对每个 SqlMembershipProvider 表进行。 SQL Server 帐户是否需要更多权限?

这是来自 web.config 的提供者值

<profile defaultProvider="DefaultProfileProvider" enabled="true">
  <providers>
    <add name="DefaultProfileProvider"
      type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      connectionStringName="MasterSqlClientConnectionString" applicationName="PortalDEV"/>
  </providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <add name="DefaultMembershipProvider"
      type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      applicationName="PortalDEV" connectionStringName="MasterSqlClientConnectionString" enablePasswordRetrieval="true" enablePasswordReset="true"
      requiresQuestionAndAnswer="true" requiresUniqueEmail="true" maxInvalidPasswordAttempts="3" minRequiredPasswordLength="8"
      minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordFormat="Encrypted"/>
  </providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider" enabled="true" cacheRolesInCookie="false" cookiePath="/" cookieProtection="All" cookieRequireSSL="true"
  cookieSlidingExpiration="true" cookieTimeout="16" maxCachedResults="25">
  <providers>
    <add name="DefaultRoleProvider"
      type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
      connectionStringName="MasterSqlClientConnectionString" applicationName="PortalDEV"/>
  </providers>
</roleManager>
<sessionState mode="InProc" customProvider="DefaultSessionProvider" compressionEnabled="true" timeout="16">
  <providers>
    <add name="DefaultSessionProvider"
      type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  </providers>
</sessionState>

这是我的连接字符串(数据被屏蔽):

有什么想法吗?

【问题讨论】:

  • 这是我的连接字符串(数据被屏蔽):
  • 从 Visual Studio 2010,如果我选择 Project | ASP.NET 配置菜单,然后单击安全选项卡,我收到以下错误:您选择的数据存储存在问题。这可能是由无效的服务器名称或凭据或权限不足引起的。它也可能是由于未启用角色管理器功能造成的。以下消息可能有助于诊断问题:在应用程序配置中未找到连接名称“LocalSqlServer”或连接字符串为空。 (C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 第 238 行)
  • 我也遇到了“ASP.NET 配置”的问题。我刚刚将连接名称更改为“LocalSqlServer”,一切都开始工作了。

标签: asp.net universal provider-model


【解决方案1】:

诀窍是在配置文件的部分开头添加“”行。 ASP.NET Universal Providers 1.2 - "The connection name 'LocalSqlServer' was not found"

【讨论】:

    猜你喜欢
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 2016-01-22
    相关资源
    最近更新 更多