×
Техническая документация: Хостинг

Ошибки и проблемы: диагностика и решение

Как включить отображение детальных ошибок?

Включить детальное отображение ошибок веб-сервером IIS, вы можете добавив в конфигурационный файл web.config следующую структуру элементов (изменения затронут секции system.web и system.webServer):

<configuration>
    <system.web>
        <customErrors mode="Off" />
    </system.web>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
    </system.webServer>
</configuration>

Скачать пример готового web.config

Так же включить отображение детальных ошибок IIS можно через интерфейс IIS Manager. После подключения к веб-сайту перейдите в "Error Pages" раздела "IIS", нажмите на "Edit Feature Settings" в правом меню "Actions" и отметьте "Detailed Errors". Сделанные изменения автоматически запишутся в конфигурационный файл web.config.

"Error Pages" раздела "IIS"

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

Дополнительно введён функционал в личный кабинет. Включить отображение детальных ошибок можно выбрав в Древе услуг нужный домен и изменив в характеристике «параметры домена» отображение детальных ошибок на «Включить через web.config», после изменений необходимые записи будут изменены в web.config со стороны сервера виртуального хостинга в течение 30—45 минут. После завершения настройки веб-сайта отображение детальных ошибок лучше отключить, выбрав «Отключить в web.config»"

FTP-клиент не может изменить атрибуты доступа к файлам (chmod)

В рамках Windows-хостинга права на файлы и каталоги на виртуальных площадках сконфигурированы автоматически и наиболее оптимально. Дополнительно менять права доступа на файлы (в том числе с помощью ftp-клиента) нельзя.

В случае с FTP-сервером на базе Windows, FTP-клиенту будут показаны значения атрибутов как 777, не более чем для совместимости, а при их изменении FTP-клиент сообщит пользователю ошибку command not understood.

При этом стоит знать, что в отдельных случаях различные CMS проверяют атрибуты файлов и отказывают в запуске по соображениям безопасности. В условиях Windows-хостинга такие операции, как правило, не требуются и ваши файлы защищены правами доступа на уровне операционной системы.

Почему сервер отдает клиенту ошибку 404 или 401.3 на запрос индексной страницы?

Возможно, что вы изначально поместили файлы своего web-сайта в корень площадки или скопировали их из другого сайта, размещенного на этой площадке, и далее производили их перемещение (move) в нужный каталог своего web-сайта.

Особенности файловой системы операционной системы Microsoft Windows Server таковы, что при перемещении файлов внутри тома NTFS эти файлы сохраняют имеющиеся разрешения. При копировании же файлов внутри тома NTFS они, напротив, наследуют разрешения той папки, в которую были скопированы.

В результате перемещения (move) файлов из корня площадки в каталог web-сервера права н эти файлы сохранились без изменений, в результате чего анонимный пользователь web-сервера не имел к ним доступа. Результатом этого стало соответствующее сообщение об ошибке. Если скопировать (copy) файлы в требуемые каталоги или загрузить их заново, данная проблема исчезнет, и файлы будут доступны.

Ошибка "This collection already contains an address with scheme http" при обращении к WCF-сервису, размещённом на хостинге

Ответ: Для использования WCF-сервиса (Windows Communication Foundation) в среде виртуального windows-хостинга нужно добавить в файл web.config в секцию <system.serviceModel> следующее:

<serviceHostingEnvironment>
<baseAddressPrefixFilters>
<add prefix="http://имя-вашего-сайта"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>

Более подробные сведения про параметры <system.serviceModel>, <serviceHostingEnvironment> и  <baseAddressPrefixFilters> вы можете почерпнуть здесь и здесь.

Диагностика ошибок подключения через IIS Manager

Ответ: Для диагностики подключения воспользуемся стандартными средствами диагностики. Первым шагом будет выполнение telnet к серверу виртуального хостинга на порт, используемый для IIS Manager (8172 TCP).

Запустите командную строку и введите команду:

telnet uXXXXX.ftp.masterhost.ru 8172

В случае удачи ответом будет пустой экран telnet, в противном случае telnet сообщит о сбое подключения к серверу.

Закрыть подключение через telnet можно введя т.н. Escape Character, для чего (в случае удачного подключения) нажмите Ctrl + ], после введите команду quit.

Вторым шагом является трассировка маршрута следования пакетов к серверу, которая покажет узел, на котором может возникнуть ошибка, например, блокировка пакетов.

Для проверки по ICMP-протоколу можно использовать tracert, выполните команду:

tracert uXXXXX.ftp.masterhost.ru

Для дополнительной проверки можно использовать tracetcp, данная утилита покажет маршрут следования пакетов по TCP-протоколу:

tracetcp uXXXXX.ftp.masterhost.ru:8172

Результаты данных диагностик помогут определить проблему с подключением через IIS Manager. В данных примерах следует заменить uXXXXX на реальное имя вашей виртуальной площадки на базе ОС Windows Server.

Диагностика ошибок подключения через SQL Server Management Studio

Диагностика полностью аналогична диагностике для проверки соединения через IIS Manger. Следует выполнить следующие команды:

telnet uXXXXX.mssql.masterhost.ru 1433
tracert uXXXXX.mssql.masterhost.ru
tracetcp uXXXXX.mssql.masterhost.ru:1433

The system cannot find the path specified

Если ошибка возникает при обращении по ссылке http://domain.tld/ возможно несколько вариантов проблемы:

  • На вашей площадке отсутствует индексная страница в папке www домена. Подробнее здесь.
  • В результате перемещения (move) файлов из корня площадки в каталог WWW, права на эти файлы сохранились без изменений, в результате чего анонимный пользователь web-сервера не имеет к ним доступа. Вам нужно произвести копирование индексной страницы чтобы ваша страница стала доступна для анонимных посетителей вашего домена.

Server Create Object Failed

Эта ошибка возникает при попытке использования любого неподдерживаемого объекта. Чаще всего возникает при использовании устаревшего компонента CDONTS.

Windows Server более не поддерживает работу данного компонента. Вместо него нужно использовать CDOSYS

Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool

Ошибка возникает если приложение не закрывает подключения к базе MSSQL и таким образом, когда свободных подключений не остаётся — база данных отдаёт ошибку.

Microsoft рекомендует всегда закрывать подключение к БД сразу после того, как вы использовали это подключение.

Таким образом подключение возвращается в пул подключений, и становится доступным для последующего использования.

Пример соответствующего кода можно найти здесь.

Unable to add 'Web.Config' to the Web. 550 Web.Config: Access is denied

Если вы используете файл настроек отличный от Web.Config тогда фраза будет содержать имя файла настроек.

Проблема с сессиями протокола FTP. Скорее всего ваш FTP клиент открыл несколько одновременных сессий, заблокировал файл файл в одной из них, но сессию не закрыл.

Нужно закрыть данную сессию или дождаться пока она закроется по таймауту (это произойдёт если FTP клиент будет неактивен).

Service Unavailable

Скорее всего на тарифном плане Win'03 был превышен лимит ресурсов отведённых по тарифному плану. Данная ошибка появляется когда происходит рециркуляция рабочего процесса в пуле приложений клиента.

Выходов два: или модифицировать скрипты чтобы они потребляли меньше ресурсов или переходить на более высокий тарифный план с повышенными лимитами ресурсов.

The database principal owns a schema in the database, and cannot be dropped

Данная ошибка возникает при попытке удаления пользователя в базе (например, база была восстановлена из резервной копии).

Просмотреть, кто какими схемами владеет можно с помощью запроса:

SELECT s.name AS [schema_name], dp1.name AS [owner_name]
FROM sys.schemas AS s
INNER JOIN sys.database_principals AS dp1 ON dp1.principal_id = s.principal_id

Сменить владельца можно так:

ALTER AUTHORIZATION ON SCHEMA::[Test] TO [dbo]
— владельцем схемы Test становится dbo.

Если у вас остались вопросы — посетите раздел FAQ.