Sharepoint, будучи user-friendly, не любит пугать пользователей. А вот разработчики плюются от этой дружелюбности. Пишешь приложение под Sharepoint, оно выдает ошибку, а посмотреть, что за ошибка можно только в логах. Но так замучаешься кодить. Пусть на время разработки (а разработка должна вестись на отдельных машинах) или на время отладки сообщения об ошибках выдаются на страницах.
Встала задача написать обработчик, который будет генерировать вордовые документы и подставлять в них некоторые данные. Написал код, нажимаю на Deploy, а мне сообщение об ошибке ...
Почитав MSDN, сразу увидел, что нужно в файл web.config, который расположен в директории "C:\inetpub\wwwroot\wss\VirtualDirectories\директория приложения" внести следующие правки:
- В <system.web> изменить запись: <customErrors mode="On" /> на <customErrors mode="Off" /> (именно так,здесь Off не значит отключение). Тут же для вывода отладочной информации можно добавить строчку <trace enabled="true" pageOutput="true" />.
- Найти <compilation batch="false" debug="false"> и изменить значение debug="true"
- Включить CallStack. В ветке <SharePoint><SafeMode … > указать значение True для CallStack:
<SafeMode MaxControls="200" CallStack="true" DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="false">
Это все подходит для отладки веб-частей Sharepoint, но для обработчиков, которые размещают в hive ("C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\") этих действий не достаточно по той причине, что в Layouts есть свой web.config! В нем, кроме описанных выше действий, надо прописать <customErrors mode="Off" />. И тогда будут на экране сообщения об ошибках при написании обработчика.