Reputation: 75
I am trying to connect to a SQL Server 2008 server instance via NHibernate using C#. I am unable to do so.
I have been successful in connecting to to the same instance via Hibernate using java. So i am kinda sure that there is nothing wrong with my SQL Server 2008 configuration settings. I have also managed to connect to SQL Server 2008 Express.
Here is the 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>
Here is the error message:
Test method NHibernate101.Tests.RepositoriesTest.CanCreatePost threw exception: System.Data.SqlClient.SqlException: Login failed for user 'sunil'.
Here is the stack trace:
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) 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(Dialect dialect, IConnectionHelper connectionHelper) NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update(ISessionFactory sessionFactory) NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping mapping, Settings settings, EventListeners listeners) NHibernate.Cfg.Configuration.BuildSessionFactory() Core.Domain.Repositories.NHibernateHelper.get_SessionFactory() in D:\dotnet\tutorials\NHibernate101\Core\Domain\Repositories\NHibernateHelper.cs: line 22 Core.Domain.Repositories.NHibernateHelper.OpenSession() in D:\dotnet\tutorials\NHibernate101\Core\Domain\Repositories\NHibernateHelper.cs: line 30 Core.Domain.Repositories.CategoryRepository.Core.IRepository.Save(Category entity) in D:\dotnet\tutorials\NHibernate101\Core\Domain\Repositories\CategoryRepository.cs: line 17 NHibernate101.Tests.RepositoriesTest.CanCreatePost() in D:\DOTNet\NHibernate101\NHibernate101.Tests\RepositoriesTest.cs: line 69
Upvotes: 1
Views: 3346
Reputation: 755297
The error message seems pretty obvious:
System.Data.SqlClient.SqlException: Login failed for user 'sunil'.
That would indicate that the user specified in the connection string
So I would try to fix your connection string to make sure you can log in:
server=(local)\SUNIL,3067;Initial Catalog=NHibernate101;
User ID=sunil;Password=mypassword;
SUNIL
and resides on your local machine?NHibernate101
?sunil
exist on that server?mypassword
?sunil
exist in NHibernate101
?Can you connect to that server, that database, with exactly that login and password, from SQL Server Management Studio??
Upvotes: 1