[英]Why won't my application connect to SQL Server database when I can connect using SQL Server Management Studio with the same login?
[英]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.