ASP.NET Universal Providers 1.2 - “找不到连接名称'LocalSqlServer'”

时间:2012-08-23 00:54:52

标签: asp.net universal provider-model

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

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

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

我已经创建了sql脚本来创建SqlMembershipProvider表(当提供程序在本地正确运行时,从临时数据库反向设计)。正确的表存在,并且使用我的开发盒上的主sql server实例工作正常。

我不确定为什么它试图在远程DEV服务器上使用旧的提供程序。我假设它有一个权限错误。在我的开发箱上,我是一名管理员,并使用集成安全性。对于DEV服务器,我使用的是SQL Server帐户(请参阅下面的连接字符串),该帐户在每个SqlMembershipProvider表上都是SELECT INSERT UPDATE DELETE perms。 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>

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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