Ошибка: 40 - Не удалось открыть соединение с SQL Server - только на промежуточном веб-сайте.

У меня есть два веб-сайта ASP.NET на веб-сервере и две базы данных SQL Server.

У меня есть папка для веб-сайта № 1, которая содержит файл web.config со строкой подключения, указывающей на базу данных № 1.

В папке для веб-сайта № 1 есть промежуточная папка под названием «staging», содержащая веб-сайт № 2, а в файле web.config есть строка подключения, указывающая на базу данных № 2.

Сайт №1 работает отлично.

Но когда я пытаюсь запустить веб-сайт 2, я всегда получаю следующую ошибку:

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

Я убедился, что строка подключения верна и указывает на базу данных №2.

Но даже когда я заменяю строку подключения с веб-сайта № 1, которая отлично работает на веб-сайте № 1, она все равно не работает.

Вот как выглядит строка подключения:

<connectionStrings>
    <add name="WebsiteConnectionString" connectionString="Data Source=localhost;Initial Catalog=WebsiteStaging;User Instance = false;User Id=xxxx;Password=yyyy" providerName="System.Data.SqlClient" />
</connectionStrings>

Происходит ли здесь что-то необычное, о чем я не знаю?


person Jonathan    schedule 08.09.2009    source источник


Ответы (3)


Не уверен, какую версию IIS вы используете, но вам может потребоваться создать два отдельных веб-приложения: одно указывает на папку «Веб-сайт № 1», а другое — «Веб-сайт № 2».

При просмотре свойств веб-сайта/виртуального каталога имя приложения должно быть установлено для обоих каталогов. Так ли это?

person David Andres    schedule 08.09.2009

LOCALHOST для IIS

(LOCAL) для SQL Server

Мои строки подключения обычно говорят "Server=(LOCAL);Integrated Security=SSPI...."

Я бы проверил вкладку безопасности, чтобы узнать личность, под которой работают оба веб-сайта.

person Raj More    schedule 08.09.2009

Очень жаль... похоже, это вообще не связано со связью.

Это произошло потому, что уровень данных Linq-to-SQL (который был в другом проекте) ссылался на свою собственную строку подключения (хотя, где бы я ни создавал экземпляр DataContext в проекте веб-сайта, я всегда использовал строку подключения web.config в качестве параметр).

Но спасибо за ваши ответы, это, вероятно, было бы неплохо проверить, если бы вышеперечисленное не было проблемой.

person Jonathan    schedule 08.09.2009
comment
что ж, хорошая новость: вы нашли проблему и ее решение - person David Andres; 08.09.2009