尝试使用 NHibernate 连接到我的数据库时出现登录失败错误:
var config = Fluently.Configure()
.Database(MsSqlConfiguration
.MsSql2005
.ConnectionString("Data Source=SERVER1\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=xxx"))
.Mappings(x => x.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()));
Run Code Online (Sandbox Code Playgroud)
随着Error 18456 State 5在SQL Management Studio中的日志查看器。
但是使用sqlcmd或管理工作室它工作正常(使用 Windows 身份验证)!
可能是什么问题呢?
编辑 NHibernate 异常:
Test method ProjektLogg.Tests.NHibernateTests.ShouldBeAbleToGenerateFactory threw exception:
FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
---> NHibernate.HibernateException: Login failed for user XXX-INTRANET\username. ---> System.Data.SqlClient.SqlException: Login failed for user XXX-INTRANET\username.
Run Code Online (Sandbox Code Playgroud)
该错误消息的意思是“无效的用户 ID”。如果您运行的是 IIS,请确保您的应用程序池使用与在 Management Studio 中连接到数据库的用户相同的身份。
如果您不是在 IIS 下运行,请确保您当前的用户帐户 (Windows) 可以访问数据库,因为您正在使用集成安全性。
错误链接:http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx
编辑:等一下,您缺少 Initial Catalog。尝试这个:
"Data Source=SERVER1\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=YourDatabase"
Run Code Online (Sandbox Code Playgroud)