2个DNN文件系统指向同一个数据库

时间:2013-05-10 09:18:13

标签: dotnetnuke

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

我收到了消息

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

    <roleManager>
       <providers>
              <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

两台计算机中的应用程序池和IIS设置相同。我错过了什么想法?

2 个答案:

答案 0 :(得分:0)

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

<connectionStrings>
    <!-- Connection String for SQL Server 2005/2008 Express -->
    
    <!-- Connection String for SQL Server 2005/2008
    <add name="SiteSqlServer" connectionString="Server=(local);Database=DotNetNuke;uid=;pwd=;" providerName="System.Data.SqlClient" /> 
    -->
  </connectionStrings>

答案 1 :(得分:0)

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

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

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

我在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" />