0

我正在使用 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)上都可以正常工作。

4

1 回答 1

0

解决方案(或更确切地说是解决方法)是将数据库的所有权设置为 Windows 凭据 - 即使它可以从权限设置访问它,但只有执行此操作才能解决问题。

于 2012-10-19T14:32:47.673 回答