我正在使用 Visual Studio Web Developer 2010 Express 在绑定到 Active Directory 的笔记本电脑上开发 Azure/MVC4 应用程序,并在两台 PC 之间同步项目。第二台 PC 安装了 Visual Studio 2010 Professional,并且不在 Active Directory 上。
在第二台 PC 上一切正常,包括发布到 Azure。在笔记本电脑上,我无法连接到本地 SQL Server Express 数据库。我正在使用 Windows 身份验证。
这是我的连接字符串:
<add name="DefaultConnection"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-HomeNetworking-20121017194204;Integrated Security=SSPI;"
providerName="System.Data.SqlClient" />
但是,当尝试连接到应用程序时,出现错误(我更改了域和登录名):
无法打开登录请求的数据库“aspnet-HomeNetworking-20121017194204”。登录失败。用户 'DOMAINNAME\UserName' 登录失败。
即使我切换到 SQL 身份验证并明确提供“sa”登录名和密码,连接也会被拒绝。我可以使用 SQL Server Management Studio 很好地连接,使用 Windows 或 SQL 身份验证,所以数据库权限似乎没问题。
我已阅读有关类似问题的其他问题,但似乎没有一个可以解决我的问题。
我使用 FluentNHibernate,这里是 CreateSessionFactory 代码摘录:
public static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("DefaultConnection"))
.ShowSql())
.Cache(c => c.UseQueryCache().ProviderClass<HashtableCacheProvider>())
.Mappings(m =>m.FluentMappings.AddFromAssemblyOf<Benchmark>())
.ExposeConfiguration(cfg => new SchemaUpdate(cfg).Execute(false, true))
.BuildSessionFactory();
}
同样,请注意,这在未启用域的 PC 以及 Windows Azure(其中连接字符串使用 Azure SQL)上都可以正常工作。