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

Eri*_*kTJ 5 c# sql-server

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

mat*_*mmo 4

该错误消息的意思是“无效的用户 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)