IIS 7 не может подключиться к SQLServer 2008 - PullRequest
3 голосов
/ 13 февраля 2009

Извините, если это наиболее часто встречающийся вопрос в Интернете, но это моя очередь. Я пытаюсь опубликовать мое приложение asp.net mvc на IIS 7 под MS Sql Server 2008. Я нахожусь на виртуальной машине Windows Server 2008. Я получаю следующую классическую ошибку:

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

В SQLServer установлен флажок «Разрешить удаленные подключения». Моя строка подключения:

Источник данных =. \ MSSQLSERVER; Начальный каталог = mydbname; Идентификатор пользователя = sa; Пароль = mypassword

Я также пытался без имени пользователя / пароля и "Integrated Security = true". Установлен только один экземпляр SQLServer. Я пытался получить доступ к моей веб-странице локально и удаленно. На виртуальной машине нет активного брандмауэра.

Ответы [ 6 ]

3 голосов
/ 13 февраля 2009

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

Я использую NHibernate, и строка подключения фактически находится в файле nhibernate.cfg.xml. Один файл в файле web.config фактически используется моими различными провайдерами (пользователями / ролями). Я исправил это, удалив строку подключения из файла конфигурации NH. Теперь я получаю его с помощью:

string connectionString = ConfigurationManager.
ConnectionStrings["myConnectString"].ConnectionString;

и я установил его в NH с помощью:

Configuration cfg = new Configuration();
cfg.Configure(cfgFile);
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionString, connectionString);

Теперь я получаю:

Невозможно открыть базу данных "mydb" запрашивается логином. Логин не удалось. Ошибка входа для пользователя 'NT ВЛАСТЬ \ СЕТЕВАЯ СЛУЖБА '.

Но это другая история, другой вопрос, если я не могу найти ответ.

PS: мне пришлось использовать "." в противном случае в качестве имени сервера. \ MSSQLSERVER выдавал новую ошибку "неверная строка подключения". Спасибо Йену и Джареду за подсказку.

3 голосов
/ 13 февраля 2009

Убедитесь, что TCP / IP настроен в качестве транспорта в инструменте настройки SQL Server.

1 голос
/ 13 февраля 2009

вы уверены, что это именованный экземпляр SQL?

попробовать

Источник данных =; Исходный каталог = mydbname; Идентификатор пользователя = sa; Пароль = mypassword

UPDATE:

с этого сайта

Вы пробовали следующее:

  • Убедитесь, что сервер доступен, например, DNS может быть разрешен правильно, вы можете пропинговать сервер (не всегда так).
  • Убедитесь, что на сервере запущена служба браузера SQL.
  • Если на сервере включен брандмауэр, необходимо исключить sqlbrowser.exe и / или UDP-порт 1434.
1 голос
/ 13 февраля 2009

Как уже упоминал Роберт, попробуйте:

ConnectionString="Data Source=(LOCAL)\MSSQLSERVER;Initial Catalog=mydbname;User ID=sa;Password=mypassword"

Я не уверен, что строки подключения чувствительны к регистру, но я заметил, что у вас вместо 'ID' стоит 'Id'.

Edit: Не уверен, что вам нужен \ MSSQLSERVER?

1 голос
/ 13 февраля 2009

Это фактическая строка источника данных из веб-конфигурации?

Если это так, то это, конечно, должно быть в кавычках, для безопасности добавьте a; в конце и убедитесь, что это фактическое имя вашего экземпляра, вы можете проверить Windows Services для вашего имени экземпляра.

попробуйте заменить localhost вместо . и можете ли вы подключиться из sql server management studio, используя учетные данные в строке подключения?

0 голосов
/ 13 декабря 2013

Что ж, с утра (за последние 8 часов) я столкнулся с той же проблемой, что и многие другие вещи, такие как создание имени домена, установка нового идентификатора пула приложений, но ничего не получалось: (

Я только что сделал небольшие изменения в web.config файле для строки подключения, которая:

Integrated Security = False вместо True ... и теперь она работает отлично

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