Вопрос по c#, sql-server-2008, web-config, sql-server, asp.net – ошибка: 26 - Указана ошибка при поиске сервера / экземпляра. (Не удается подключиться к моей локальной базе данных с моего хост-сервера)

1

Я уже задавал этот вопрос раньше, но без какого-либо хорошего ответа, моя проблема в том, что у меня есть локальная база данных (aspnetdb.mdf) в моей папке app_data, вот строка подключения в web.config:

<add name="ApplicationServices" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient" />

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

На другом сервере у меня есть SQL Server 2008 (удаленное соединение принято, и у меня такое же имя экземпляра SQLEXPRESS). Я действительно старался изо всех сил, но без каких-либо хороших результатов Я буду очень признателен за вашу помощь, спасибо.

Ваш Ответ

1   ответ
6

Этот формат указывает на локальное соединение:

.\SQLEXPRESS

С другого сервера вам нужно указать имя или IP-адрес сервера, например:

192.168.1.205\SQLEXPRESS
YOURMACHINE\SQLEXPRESS

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

Вам также следует прекратить использовать этот метод глупого пользовательского экземпляра / attachDbFilename. Правильно присоедините вашу базу данных к экземпляру, затем укажите логическое имя базы данных, используяInitial Catalog=aspnetdb; в вашей строке подключения. Эта функция экземпляра пользователя устарела по нескольким причинам, и это, безусловно, одна из них.

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

EDIT предоставление детских шагов, потому что, очевидно, мой совет не выполняется. Предполагая, что вы действительно подключили базу данных aspnetdb на новом сервере, попробуйте это:

 connectionString="data source=192.168.85.124\SQLEXPRESS;
   Integrated Security=SSPI;
   Initial Catalog=aspnetdb;" 

Если вы в конце концов не используете именованный экземпляр SQL Express, попробуйте:

 connectionString="data source=192.168.85.124;
   Integrated Security=SSPI;
   Initial Catalog=aspnetdb;" 

Для аутентификации SQL используйте то же имя пользователя / пароль, которое вы используете в Management Studio:

 connectionString="data source=192.168.85.124;
   User ID=username; Password=password;
   Initial Catalog=aspnetdb;" 

Это устранение неисправностей 101 вещи. Если вы все еще не можете заставить это работать, вам, возможно, придется нанять консультанта на 10 минут, чтобы он починил его для вас, поскольку невозможно выяснить, что вы сделали, и почему вы не можете заставить его работать.

Похоже, вы выбрали SSPI для безопасности, но тоже не хотели этого делать. Вы создали логин на новом SQL Server, который имеет доступ к базе данных? Могу ли я предложить Access как гораздо более простую базу данных для использования и управления?
Я думаю, что вам нужно удалить файл MDF в App_data и перестать ссылаться на него из вашего приложения, из Visual Studio, из SSMS и т. Д. Вам нужно толькоone копия вашей базы данных, и правая для управления - это та, которая фактически прикреплена к вашему экземпляру SQL Server, а не статический файл в вашем пользовательском каталоге, который копируется каждый раз, когда вы создаете новую ссылку на него.
Можете ли вы дать мне пример? wben
Прикрепили ли вы базу данных aspnetdb или ожидаете, что сможете продолжить использовать это|DataDirectory| номенклатура и ссылки на физический файл вместо логической базы данных?
Здравствуйте, @Aaron Bertrand, спасибо за ответ, вот моя новая строка подключения: & lt; add name = & quot; ApplicationServices & quot; connectionString = & quot; источник данных = 192.168.85.124 \ SQLEXPRESS; встроенная защита = SSPI; исходный каталог = | DataDirectory | \ aspnetdb.mdf; & Quot; ProviderName = & Quot; System.Data.SqlClient & Quot; / & GT ;. Я получаю ту же ошибку! wben

Похожие вопросы