簡體   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