不能登录到SQL Server使用NHibernate,但与管理工作室或sqlcmd它的工作

本文关键字:工作室 管理工作 管理 sqlcmd 工作 SQL 登录 Server 使用 NHibernate 不能 | 更新日期: 2023-09-27 17:53:49

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

在SQL Management Studio的日志查看器中使用Error 18456 State 5

但是使用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.

不能登录到SQL Server使用NHibernate,但与管理工作室或sqlcmd它的工作

该错误信息表示"无效的UserID"。如果您正在运行IIS,请确保您的应用程序池使用与您在management studio中连接到数据库的用户相同的身份。

如果您没有在IIS下运行,请确保您当前的用户帐户(Windows)可以访问数据库,因为您正在使用集成安全。

错误链接:http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx

编辑:等一下,您缺少初始目录。试试这个:

"Data Source=SERVER1''SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=YourDatabase"

我遇到了一个类似的问题,我意识到不像实体框架,(流利)NHibernate不为你创建一个数据库。解决方案是创建一个空数据库。

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

Initial Catalog=xxx

我清理了整个解决方案,现在它工作了。抱歉浪费你们的时间,伙计们。谢谢你的回答。

我无法让它与集成安全工作,我必须在连接字符串中提供用户和密码。