2011-01-25 38 views
1

C#を使用してNHibernate経由でSQL Server 2008サーバーインスタンスに接続しようとしています。私はそうすることができません。SQL Server 2008のインスタンスに接続できません

私は、javaを使用してHibernate経由で同じインスタンスに接続できました。だから、私はちょっと私のSQL Server 2008の設定の設定に間違いがないと確信しています。私はSQL Server 2008 Expressに接続することもできました。 NHibernate101.Tests.RepositoriesTest.CanCreatePostは例外をスロー

試験方法: System.Data.SqlClientのここ

はエラーメッセージhibernate.cfg.xmlのここ

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 

    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
    <property name="connection.connection_string">server=(local)\SUNIL,3067;Initial Catalog=NHibernate101;User ID=sunil;Password=mypassword;</property> 
    <property name="show_sql">true</property> 
    <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> 
    <property name="cache.use_query_cache">false</property> 
    <property name="adonet.batch_size">100</property> 
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property> 
    <mapping assembly="Infrastructure" /> 
    </session-factory> 
</hibernate-configuration> 

あります.SqlException: ユーザー 'sunil'のログインに失敗しました。ここで

スタックトレースです:

System.Data.SqlClient.SqlInternalConnection.OnError(SqlExceptionが 例外、ブールbreakConnection) System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() システム。 Data.SqlClient.TdsParser.Run(runBehavior runBehavior、SqlCommandオブジェクトcmdHandler、 SqlDataReaderのデータストリーム、 BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj) System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(ブール enlistOK) System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo、文字列NEWPASSWORD、 ブールignoreSniOpenTimeout、 TimeoutTimerタイムアウト、SqlConnectionオブジェクト owningObject) System.Data。 SqlClient.SqlInternalConnectionTds.LoginNoFailover(serverInfo serverInfo、文字列NEWPASSWORD、 ブールredirectedUserInstance、 のSqlConnection owningObject、 SqlConnectionStringのconnectionOptions、 TimeoutTimerタイムアウト) System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnectionオブジェクト owningObject、TimeoutTimerタイムアウト、 SqlConnectionStringのconnectionOptions、 ストリングNEWPASSWORD、ブール redirectedUserInstance) System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity アイデンティティ、 connectionOptionsをSqlConnectionString、 providerInfo、文字列NEWPASSWORD、 のSqlConnection owningObjectオブジェクト、ブール redirectedUserInstance) System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions オプション、poolGroupProviderInfo、 DbConnectionPoolプールたDbConnection owningConnectionオブジェクト) System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(たDbConnection owningConnection、DbConnectionPool プール、DbConnectionOptionsオプション) System.Data.ProviderBase.DbConnectionPool.CreateObject(たDbConnection owningObject) System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(たDbConnection 所有者オブジェクト) System.Data.ProviderBase。DbConnectionPool.GetConnection(たDbConnection owningObject) System.Data.ProviderBase.DbConnectionFactory.GetConnection(たDbConnection owningConnection) System.Data.ProviderBase.DbConnectionClosed.OpenConnection(たDbConnection outerConnection、DbConnectionFactory はconnectionFactory) System.Data.SqlClient.SqlConnection .Open() NHibernate.Connection.DriverConnectionProvider.GetConnection() NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare() NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords(方言 方言、IConnectionHelper connectionHelper) NHibernat e.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory のSessionFactory) NHibernate.Impl.SessionFactoryImpl..ctor NHibernate.Cfg.Configuration.BuildSessionFactory() コア(構成 CFG、IMappingマッピングは、 設定、のEventListenerのリスナーを設定します) Dで.Domain.Repositories.NHibernateHelper.get_SessionFactory() :DOTNET \ \チュートリアル\ NHibernate101 \コア\ドメイン\リポジトリ\ NHibernateHelper.cs: ライン22 Core.Domain.Repositories.NHibernateHelper.OpenSession() の中D:¥dotnet¥tutorials¥NHibernate101¥Core¥Domain¥Repositories¥NHibernateHelper.cs: line 30 C DOTNET \チュートリアル\ \ NHibernate101 \コア\ドメイン\リポジトリの\ CategoryRepository.cs: ライン17 NHibernate101.Tests.RepositoriesTest.CanCreatePost Dでore.Domain.Repositories.CategoryRepository.Core.IRepository.Save(カテゴリ エンティティ) () でD:\ DOTNET \ NHibernate101 \ NHibernate101.Tests \ RepositoriesTest.cs: ライン69

答えて

1

は、エラーメッセージはかなり明白ようだ:

System.Data.SqlClient.SqlException: ユーザー 'sunil'のログインに失敗しました。接続文字列

  • で指定したユーザーがさえ
  • は、接続文字列で指定されたデータベースに接続する権限を持っていないサーバーに接続する権限を持っていないことを示すことになる

  • 間違ったパスワードを
  • だから私はあなたCONNを修正しようとする接続文字列で指定されていますection文字列ログインすることができますことを確認する:

    server=(local)\SUNIL,3067;Initial Catalog=NHibernate101; 
        User ID=sunil;Password=mypassword; 
    
    • あなたのSQL Serverインスタンスが本当にSUNILと呼ばれ、ローカルマシン上に常駐していますか?
    • SQL Serverは実際にポート3067を使用していますか? (これはで、デフォルトではではありません)
    • は実際にNHibernate101と呼ばれていますか?
    • そのサーバーにsunilというログイン名がありますか?
    • 本当にそのログインパスワードはmypasswordですか?
    • そのユーザーはなんらかの理由で「ブロック」されていないか、ロックアウトされていませんか?
    • sunilのユーザーはNHibernate101に存在しますか?

    あなたは、SQL Server Management Studioのから正確そのログイン名とパスワード、とそのサーバー、そのデータベースに接続することはできますか?

    +0

    ちょっと絞りかすは、はい、ここで呼ばPortqry.exeに照会ターゲット・システムから出力されます。 172.17.1.243(これは私のローカルマシンです) が名にIPアドレスを解決しようとするが... miles243に解決 IPアドレス 照会... UDPポート1434(MS-SQL-Mサービス):LISTENINGまたはUDPポート1434へのSQL Serverクエリを送信 をFILTERED ... サーバーの応答: ServerNameのMILES243 のInstanceName SQLEXPRESS IsClusteredん バージョン10.0。 2531.0 tcp 1433 ServerName MILES243 InstanceName S UNIL IsClusteredいいえ バージョン10.0.1600.22 tcp 3067 同じパラメータを使用して、Javaでhibernateを使用してインスタンスに接続できます。 –

    +1

    うん、それは今働いている。ユーザーSunilのデータベースへのアクセスはありませんでした。ありがとう –

    関連する問題