IIS: подключение к базе данных .mdf - проблема веб-конфигурации - PullRequest
1 голос
/ 21 декабря 2010

Локально я подключаюсь к Northwind.mdf, но когда я загружаю приложение на удаленный сервер, я получаю следующую ошибку:

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

Вот несколько вариантов, которые я пробовал:

<connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>

Вышеупомянутый работает локально.

<connectionStrings>
            <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\ASP\TestSite\App_Data\Northwind.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True;Trusted_Connection=Yes"/>
        </connectionStrings>

На сервере установлен SQL Server 2005

Спасибо
Ilija

Ответы [ 4 ]

1 голос
/ 22 декабря 2010

Вот пара моментов, которые нужно проверить:

  • Если вы развертываете в среде общего хостинга, есть вероятность, что на хосте не будет работать SQL Server на веб-серверах.Попросите их подтвердить и предоставить вам.

  • Строка подключения, которую вы используете, выглядит подозрительно.Если SQL-сервер был установлен на вашем сервере, но в качестве экземпляра «По умолчанию», вам не нужна часть \SQLEXPRESS строки подключения Data Source.Просто используйте . или (local).

  • Если действительно установлен SQL Express и установлен с именем экземпляра SQLEXPRESS, убедитесь, что у удостоверения сайта действительный логини правильные разрешения в вашей базе данных.Это может быть учетная запись рабочего процесса (NETWORK SERVICE, ApplicationPoolIdentity, пользовательская учетная запись) или анонимная учетная запись сайта IIS (если олицетворение ASP.NET включено).

Мой окончательный вариантВажно отметить:

  • AttachDbFilename и User Instance=True относятся к SQL Express, который поддерживает концепцию, известную как " Пользовательские экземпляры ".Эта функция не подходит для выделенного или совместно используемого хостинга.

Мой совет:

  • точно узнать, какая версия И редакция SQL Server доступен для использования
  • , чтобы узнать, где он находится (локально на вашем сервере или на другом компьютере).
  • , выяснить, настроен ли он как «По умолчанию».экземпляр или именованный экземпляр
1 голос
/ 21 декабря 2010

Выполните следующие действия: 1. Присоедините ваш файл Northwind.mdf к вашему Sql Server 2005 на вашем сервере с помощью Sql server Management studio.2: Измените строку подключения в вашем файле web.config так, чтобы она указывала на базу данных на вашем сервере.

Как отсоединить / присоединить базу данных.

1 голос
/ 21 декабря 2010
Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\ASP\TestSite\\App_Data\\Northwind.mdf;Integrated Security=True;User Instance=True

А затем прочитайте Как настроить SQL Server 2005 для разрешения удаленных подключений

И убедитесь, что местоположение Northwind.mdf правильное!

1 голос
/ 21 декабря 2010

Пара вещей для проверки:

  1. Действительно ли файл базы данных находится в этом месте?
  2. Имеет ли пул приложений права на чтение / запись для этого каталога?
  3. Службы SQL Express действительно запущены?
...