NHibernate не подключается к серверу sql - PullRequest
6 голосов
/ 24 марта 2010

Когда я устанавливаю обычное соединение, оно работает, однако, когда я пытаюсь использовать nhibernate, hibernate.cfg.xml, я получаю следующую ошибку.

Message = "Ошибка сетевого или специфического экземпляра при установлении соединения с SQL Server. Сервер не был найден или не был доступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен разрешить удаленные подключения. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске сервера / указан экземпляр) " Источник = ". Поставщик данных Net SqlClient"

Какова будет причина этого и как я могу решить это?

Я сомневаюсь, что это ошибка конфигурации сети или сервера sql.

<?xml version="1.0" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Server=(ServerName\DEV_ENV);Initial Catalog=dbName;User Id=SA;Password=PASS</property>

    <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>

  </session-factory>
</hibernate-configuration>

Ответы [ 4 ]

2 голосов
/ 07 октября 2011

Я написал небольшой кусочек кода в том же приложении, чтобы открыть необработанное соединение ado.net с той же строкой соединения, и оно заработало.

Затем я скопировал и вставил эту строку подключения в файл конфигурации для nhibernate, и она начала работать.

Когда я сравнивал исходную строку с сообщением об ошибке и новой строкой соединения ... я не мог видеть никакой разницы ... понятия не имею, что происходит ... полностью озадачен ... в любом случае проблема решена ... Надеюсь, это кому-нибудь поможет.

2 голосов
/ 26 марта 2010

Попробуйте подключиться к серверу с той же строкой подключения, но с другой технологией доступа к данным, например, чисто ADO.NET.

Если и это не помогает, значит, это не проблема NHibernate.
Возможно, строка подключения или некоторые параметры SQL-сервера неверны, как указано в сообщении об ошибке:

"Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений."

2 голосов
/ 26 марта 2010

Это формат, который я использовал для более десятка приложений для SQL SERVER 2005/2008

data source=COMPUTERNAME;User Id=USERNAME;Password=PASSWORD;database=DATABASENAME

или если вам требуется имя экземпляра

data source=COMPUTERNAME\SERVERINSTANCE;User Id=USERNAME;Password=PASSWORD;database=DATABASENAME

заменить заполнители заглавными буквами. Также убедитесь, что вы установили sql-сервер, чтобы разрешить подключения для Sql Server Authentication, а не только Windows Authentication. Также проверьте ваш брандмауэр

2 голосов
/ 24 марта 2010

Правильно ли указана строка подключения?

http://www.connectionstrings.com/sql-server-2005

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...