LINQ to SQL не может подключиться к базе данных, но строка подключения исправна - PullRequest
1 голос
/ 31 января 2011

Я развернул сайт MVC и его базу данных для провайдера веб-хостинга. Таблицы ASPNET по умолчанию и пользовательские таблицы приложений находятся в одной базе данных. В веб-конфигурации есть две строки подключения: одна для ApplicationServices и одна для моего LINQ to SQL dbml. Поскольку они совместно используют одну и ту же базу данных, я использую одинаковую строку подключения для обоих.

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

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

Это, конечно, все работает правильно на моей локальной машине. Мне бы очень хотелось узнать, почему LINQ to SQL не может соединиться с допустимой строкой соединения.

1 Ответ

0 голосов
/ 01 февраля 2011

Файл LINQ to SQL dbml находится внутри библиотеки классов, и при запуске веб-проект ASP.NET использует эту библиотеку в качестве слоя данных. LINQ to SQL считывал свою строку подключения из app.config библиотеки классов при запуске через visual studio. При публикации веб-проекта включается зависимая библиотека данных, но не ее app.config. Теперь я понимаю, что полностью определенные строки подключения необходимо вручную скопировать в web.config основного проекта, где они переопределяют значения по умолчанию для сборки. Проблема, с которой я столкнулся, заключалась в том, что при отсутствии app.config и отсутствии строк подключения в web.config, по крайней мере, не полностью определенных, библиотека возвращалась к своим значениям по умолчанию для разработки.

...