2010-01-21 4 views
1

Я написал HTTPHandler (в C#), чтобы принимать запросы GET и PUT, чтобы в основном разрешить извлечение и обновление ресурса удаленным клиентом.C# HttpHandler, чтобы принимать запросы PUT для загрузки контента

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

Сервер веб-сервера - IIS6 (работает в окне сервера W2K3).

Я настроил NTFS, чтобы пользователь ASPNET мог писать в определенные области под веб-сайтом, поэтому ASP.NET не должен сталкиваться с проблемами безопасности файлов. Я проверил свой Web.config, что добавил оба глагола «GET, PUT».

Однако ответ от запроса PUT всегда равен 403 Forbbiden.

HTTP/1.1 403 Forbidden 
Via: 1.1 WMEPROXY 
Connection: Keep-Alive 
Proxy-Connection: Keep-Alive 
Content-Length: 213 
Date: Thu, 21 Jan 2010 14:47:30 GMT 
Content-Type: text/html 
Server: Microsoft-IIS/6.0 
X-Powered-By: ASP.NET 

<html><head><title>Error</title></head><body><head><title>Execute Access Denied</title></head> 
<body><h1>Execute Access Denied</h1>This Virtual Directory does not allow objects to be executed.</body></body></html> 

Любые идеи, что я пропустил?

ответ

2

Вы должны добавить PUT глагол расширения ashx в IIS:

alt text http://www.15seconds.com/graphics/issue/060406_02.gif

+0

Да, я нашел его, когда я перепроверил мою конфигурацию. Благодарю. PS Любая причина безопасности Microsoft не включила PUT по умолчанию? – Philip

+0

Запросы PUT обычно используются для изменения файлов на сервере, поэтому, по соображениям безопасности, они по умолчанию отключены. –