不能登录到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.
该错误信息表示"无效的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
我清理了整个解决方案,现在它工作了。抱歉浪费你们的时间,伙计们。谢谢你的回答。
我无法让它与集成安全工作,我必须在连接字符串中提供用户和密码。