#c# #.net #sql-server #nhibernate #connection
#c# #.net #sql-server #nhibernate #подключение
Вопрос:
Когда я настраиваю обычное соединение, оно работает, однако, когда я пытаюсь использовать nhibernate, hibernate.cfg.xml я получаю следующую ошибку.
Сообщение=»При установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не был найден или был недоступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 — Указана ошибка определения местоположения сервера / экземпляра)» Источник=».Поставщик данных Net SqlClient»
В чем может быть причина этого и как я могу ее устранить?
Я сомневаюсь, что это ошибка конфигурации сети или sql server.
<?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=(ServerNameDEV_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>
Комментарии:
1. И что в вашем hibernate.cfg.xml ?
Ответ №1:
Попробуйте подключиться к серверу с помощью той же строки подключения, но с использованием другой технологии доступа к данным, например pure ADO.NET.
Если это также не удается, то это не проблема NHibernate.
Возможно, ваша строка подключения или некоторые настройки SQL server неверны, как указано в сообщении об ошибке:
«Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений».
Комментарии:
1. я перепробовал все это дерьмо, ничего не сработало. я думаю, что гибернация не работает 🙂
2. Что означает «ничего не сработало»? Вы пытались подключиться к базе данных с помощью pure ADO.NET с той же строкой подключения, и сработало ли это? Если нет, то это не может быть проблемой NHibernate.
Ответ №2:
Правильна ли ваша строка подключения?
Комментарии:
1. это выглядит неправильно? это должно быть правильно. и хотя я пробовал другие форматы, все та же фигня.
2. Хорошая ссылка. Для других версий строки подключения SQL Server используйте эту ссылку и выберите свою версию в меню «Подключиться к» справа.
Ответ №3:
Этот формат я использовал более чем для дюжины приложений для SQL SERVER 2005/2008
data source=COMPUTERNAME;User Id=USERNAME;Password=PASSWORD;database=DATABASENAME
или если вам требуется имя экземпляра
data source=COMPUTERNAMESERVERINSTANCE;User Id=USERNAME;Password=PASSWORD;database=DATABASENAME
замените заполнители заглавными буквами.
Также убедитесь, что вы настроили sql-server так, чтобы разрешать подключения для Sql Server Authentication
и не только Windows Authentication
.
Проверьте также свой брандмауэр
Комментарии:
1. Спасибо, чувак, я попробовал этот формат, не захотел работать. но ADO.NET работает.
Ответ №4:
Я написал небольшой фрагмент кода в том же приложении, чтобы открыть необработанный ado.net подключение с той же строкой подключения, и это сработало.
Затем я скопировал вставленную строку подключения в файл конфигурации для nhibernate, и он начал работать.
Когда я сравнил исходную строку, выдающую ошибку, и новую строку подключения… Я не мог видеть никакой разницы вообще… понятия не имею, что происходит… совершенно зашел в тупик … в любом случае проблема решена… надеюсь, это кому-то поможет.