Вопрос
Я хочу реализовать сервер WebDAV в ASP.Net.приложение будет развернуто в IIS 6.Я видел несколько платформ, которые предоставляют эту функциональность, но я не могу понять, как они могут это сделать без (очевидно) изменения настроек IIS.
Мой конкретный вопрос заключается в том, как мне настроить IIS и ASP.Net, чтобы IHttpModule/IHttpHandler мог обрабатывать любые дополнительные глаголы WebDAV (т. е.БЛОКИРОВКА, ОПЦИИ, ПРОФИНД и т. д.)
Решение
Невозможно настроить команды WebDAV в IIS 6 без изменения настроек IIS.Это возможно только с IIS 7 и более поздних версий.
Для обработки всех команд, требуемых WebDAV в IIS 6, вам потребуется создать подстановочную карту приложения.Щелкните правой кнопкой мыши свое веб-приложение в консоли IIS 6 MMC и перейдите к Характеристики->Виртуальный каталог Вкладка->Конфигурация.Нажмите Вставлять чтобы добавить новую карту подстановочных знаков.
- Executiveable - microsoft.net framework <. Net Framework версия> aspnet_isapi.dll
- Убедитесь, что файл существует — флажок снят.
На Домашний каталог вкладка набора свойств вашего приложения Разрешения на выполнение к Только скрипты и разрешить чтение.
Вот пример web.config: http://www.webdavsystem.com/server/prev/v2/documentation/hosting_iis_asp_net/webconfig_example
Обратите внимание, что этот пример web.config был специально создан и протестирован с помощью ASP.NET 2.0 на IIS 6 на Server 2003 и IIS 5.1 на XP.Он не обрабатывает &, %, + и конечные точки (.).
ASP.NET 4.x предоставляет средства для обработки любых специальных символов на вашем сервере WebDAV. настройка web.config, включая &, % и '.'.Файл web.config, поддерживающий версии IIS 6–8, создается IT-специалист запустил мастер WebDAV Server Engine.
Другие советы
Ознакомьтесь со статьями Джеффа Лейна о WebDAV:
- http://www.zorched.net/2006/01/20/aspnet-web-application-without-aspx-extension/ — показывает конфигурацию команд в настройке IIS и HttpModule.
- http://www.zorched.net/2006/02/02/custom-webdav-server-using-net/
- http://www.zorched.net/2006/03/01/more-webdav-tips-tricks-and-bugs/
Я хотел бы взглянуть на этот проект http://sourceforge.net/projects/webdav/ для реализации webdav в C #. Если вы должны создать свой собственный, было бы хорошо сослаться на законченный; еще лучше, если вы можете использовать его снова.
Да, вам нужно будет изменить настройки IIS6, чтобы поддерживать привязку модуля ISAPI для .NET ко всем типам запросов и не проверять, существует ли файл. На IIS6 нет другого способа сделать это, потому что клиенты web-разработчиков в Windows при запросе поддержки webdav будут выполнять запрос OPTIONS в корневом каталоге (/) веб-сайта.
II7 дает вам больше возможностей ...