我正在尝试在我的程序中使用个人资料。从命令行使用aspnet_regsql.exe创建必要的表工作正常。但是,抛出一个System.Web.HttpException异常,说我尝试运行该应用程序时无法连接到数据库。这很奇怪,因为我连接到VS 2013中的服务器资源管理器上的数据库。这是我的应用程序网站上的错误消息。
发生与网络相关或特定于实例的错误 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 查找服务器/实例时出错 指定)
这是我的网络配置文件中的相关代码。
<profile defaultProvider="SqlProvider" inherits="[Namespace].AccountProfile">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="[stringname]"/>
</providers>
<properties>
<add name="Rows" type="System.String"/>
<add name="Area" type="System.String"/>
</properties>
</profile>
这是我的应用程序中抛出异常的代码
AccountProfile.cs
public class AccountProfile : ProfileBase
{
static public AccountProfile CurrentUser
{
get { return (AccountProfile)(ProfileBase.Create(Membership.GetUser().UserName)); }
}
....
}
答案 0 :(得分:1)
原来,Membership.GetUser()部分代码仍在尝试使用machine.config文件中找到的LocalSqlServer连接字符串,而不是我在web.config中提供的数据库连接字符串。在我的connectionString配置中添加<clear />
帮我解决了这个问题。
<connectionStrings>
<clear />
<add name="..." connectionString="Data Source=...;Initial Catalog=...;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>