C# HttpHandler 接受 PUT 请求上传内容
Posted
技术标签:
【中文标题】C# HttpHandler 接受 PUT 请求上传内容【英文标题】:C# HttpHandler to accept PUT requests to upload content 【发布时间】:2011-01-07 18:44:32 【问题描述】:我编写了一个 HTTPHandler(在 C# 中)来接受 GET 和 PUT 请求,基本上允许远程客户端检索和更新资源。
处理程序在我的开发机器上本地运行良好,但是我在服务器上运行它时遇到问题。
Web 服务器服务器是 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>
有什么我错过的想法吗?
【问题讨论】:
【参考方案1】:您需要在 IIS 中将 PUT
动词添加到 ashx
扩展:
(来源:15seconds.com)
【讨论】:
是的,我在重新检查配置时发现了它。谢谢。 PS 任何安全原因微软不会默认启用 PUT? PUT 请求通常用于修改服务器上的文件,所以我认为出于安全原因,它们默认是禁用的。以上是关于C# HttpHandler 接受 PUT 请求上传内容的主要内容,如果未能解决你的问题,请参考以下文章