5

尝试使用 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()));

Error 18456 State 5SQL Management Studio 的日志查看器中。

但是使用sqlcmd或 Management Studio 可以正常工作(使用 Windows Auth)!

可能是什么问题呢?

编辑 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.
4

4 回答 4

3

该错误消息的意思是“无效的用户 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"
于 2013-01-16T14:36:06.593 回答
0

我清理了整个解决方案,现在它可以工作了。对不起,浪费你们的时间,伙计们。感谢您的回答。

于 2013-01-16T15:08:39.190 回答
0

我遇到了类似的问题,我意识到与实体框架不同,(Fluent)NHibernate 不会为您创建数据库。解决方案是创建一个空数据库。

ConnectionString 中的以下段意味着数据库 xxx 必须已经存在:

Initial Catalog=xxx
于 2014-07-15T01:37:33.043 回答
0

我无法让它与 Integrated Security 一起使用,我必须在连接字符串中提供用户名和密码。

于 2015-03-06T13:51:34.287 回答