Ошибка: 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)


arrow_upward
0
arrow_downward

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

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

person David Andres    schedule 08.09.2009

arrow_upward
0
arrow_downward

LOCALHOST для IIS

(LOCAL) для SQL Server

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

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

person Raj More    schedule 08.09.2009

arrow_upward
0
arrow_downward

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

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

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

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