2014-01-28 1 views
0

Я продолжаю получать сообщение об ошибке при попытке доступа к базе данных с веб-сайта, она возвращает ошибку, которая не может найти сервер или недоступна ,«Не удается найти сервер или недоступен» на тестовом сервере, но не во время отладки

Теперь я выполнил поиск, и я нашел много возможных причин - я включил именованные каналы, а также сделал то, что предложил this link (т. Е. Установить IP-адреса на «включено»), но я все еще получаю ошибку.

Error SqlException: System.Data.SqlClient.SqlException (0x80131904): Error An error has occurred with the network or the occurrence when connecting to SQL Server. Can not find server or is not available. Verify that the instance name is correct and that the configuration of SQL Server allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at

я скачал this little app и копировать/вставить строку соединения из web.config, используемого в IIS для этого сайта, и приложение может подключиться и запросить ту же базу данных мишенью веб-сайта.

И, как говорится в названии, эта ошибка полностью отсутствует, когда я отлаживаю ее в VS2010. Что может вызвать эту ошибку при запуске с сервера?

Редактировать: строка подключения содержит имя пользователя и пароль (это не проверка подлинности Windows).

+1

Если вы продолжаете сталкиваться с этой стеной, возможно, какой-то возможный подход может заключаться в том, чтобы (a) реализовать некоторое подробное ведение журнала перед развертыванием и проверить это или (b) установить и запустить Visual Studio Remote Debugger на сервере и прикрепить к нему процесс, отладка прямо на сервере. Маленькое приложение, которое вы загрузили, может напрямую подключаться к базе данных с сервера, а не с вашей машины? Что означает, что вы подтвердили, что SQL-сервер доступен с вашего веб-сервера? –

+0

Да, приложение находится на сервере и, используя ту же строку соединения, которую использует сервер, может запросить базу данных. –

+1

Время для удаленного отладчика. Единственное, что я могу придумать, это то, что ваше приложение использует Linq-To-Sql и созданный DataContext, иногда даже когда ваш конфиг правильный, он каким-то образом кэширует строку подключения и использует вашу локальную connectionString, когда вы делали вместо того, чтобы один из config, вам нужно удалить строку подключения по умолчанию в этом случае и перекомпилировать/перераспределить, чтобы заставить ее вытащить из app.config. –

ответ

0

Вопрос заключается в том, что web.config ссылается на другой файл конфигурации

<appSettings file="config/dev.config"> 

и поэтому строка соединения в web.config игнорируется по одному в dev.config - ошибка, чтобы иметь его в обоих (один на тестовом сервере был создан кем-то другим и работал на статических страницах - он только провалился, когда веб-сайт должен был запрашивать базу данных), поэтому версия в Visual Studio работала нормально.

+0

Рад, что вы его отсортировали :) –

0

Скорее всего проблема с безопасностью. Если вы используете проверку подлинности Windows, убедитесь, что пул потоков, в котором работает веб-приложение, имеет достаточные права доступа к базе данных.

+0

Строка подключения использует имя пользователя и пароль (которые приложение тестера доступа использует для подключения sans). –

Смежные вопросы