0

我已经使用驻留在另一台机器(sqlserver 2008)中的数据库设置了 DNN7 的本地安装。我尝试将所有文​​件系统复制到生产服务器但保持连接字符串相同,因此使用完全相同的数据库。

我收到消息

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

    <角色管理器>
       <供应商>
              <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

两台机器上的应用程序池和 IIS 设置相同。关于我缺少什么的任何想法?

4

2 回答 2

0

您在 web.config 中缺少以下部分

<连接字符串>
    <!-- SQL Server 2005/2008 Express 的连接字符串 -->
    
    <!-- SQL Server 2005/2008 的连接字符串
    <add name="SiteSqlServer" connectionString="Server=(local);Database=DotNetNuke;uid=;pwd=;" providerName="System.Data.SqlClient" />
    -->
  </connectionStrings>
于 2013-05-10T11:43:19.383 回答
0

问题与角色成员资格提供者有关。由于某种原因,AspNetSqlMembershipProvider 提供程序回退到 machine.config 中的默认提供程序(在 .NET 文件夹中)。

在运行 SQLEXpress 实例的开发环境中,machine.config 有一个名为“LocalSqlServer”的连接字符串,它指向 SQLExpress。这就是它在我的开发环境中工作的原因。

另一方面,服务器没有 SQLExpress,因此 machine.config 中不存在 LocalSqlServer 连接字符串,因此会弹出错误。

我在 DNN 论坛中找到的解决方法是将这些行添加到web .config的部分中

 <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="Data Source=dbserver;Integrated Security=false;Initial Catalog=dbName;User ID=dbUser;Password=dbPass" providerName="System.Data.SqlClient" />
于 2013-05-15T08:09:18.437 回答