我使用驻留在另一台计算机上的数据库(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设置相同。我错过了什么想法?
答案 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" />