繁体   English   中英

无法使用NHibernate登录到SQL Server,但使用Management Studio或sqlcmd可以正常工作

[英]Cannot login to SQL Server using NHibernate, but with Management Studio or sqlcmd it works

我尝试使用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.

该错误消息表示“无效的用户ID”。 如果您正在运行IIS,请确保您的应用程序池使用与您在管理工作室中连接到数据库的用户相同的标识。

如果您未在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

我无法使用集成安全性,我必须在连接字符串中提供用户和密码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM