5

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()));

Error 18456 State 5SQL Management Studio のログ ビューアーで。

しかしsqlcmd、Management Studio または Management Studio を使用すると、正常に動作します (Windows Auth を使用)。

何が問題なのですか?

EDIT 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.
4

4 に答える 4

3

そのエラー メッセージは、「無効なユーザー ID」を意味します。IIS を実行している場合は、アプリケーション プールが、管理スタジオでデータベースに接続しているユーザーと同じ ID を使用していることを確認してください。

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"
于 2013-01-16T14:36:06.593 に答える
0

私は同様の問題に直面し、Entity Framework とは異なり、(Fluent)NHibernate はデータベースを作成しないことに気付きました。解決策は、空のデータベースを作成することでした。

ConnectionString の次のセグメントは、データベース xxx が既に存在している必要があることを意味します。

Initial Catalog=xxx
于 2014-07-15T01:37:33.043 に答える
0

ソリューション全体をクリーンアップして動作するようになりました。時間を無駄にして申し訳ありません。あなたの答えに感謝します。

于 2013-01-16T15:08:39.190 に答える
0

統合セキュリティで動作させることができませんでした。接続文字列でユーザーとパスワードを指定する必要がありました。

于 2015-03-06T13:51:34.287 に答える