asp.net – HTTP PUT在IIS 8.5上失败
这似乎越来越深入IIS而不是我擅长!所以我有一个适用于GET和POST的Web API控制器.第一个屏幕截图显示了GET的处理.一切都很棒,我得到了回应.
View Full Size 但后来我提出了一个PUT请求,这一切都崩溃了.它似乎穿过ManagedPipelineHandler,然后进入DefaultDocumentModule并以405失败. View Full Size View Full Size 没有安装WebDAV,我试图在web.config级别删除它.处理程序被覆盖以支持PUT. <handlers> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <remove name="OPTIONSVerbHandler" /> <remove name="TRACEVerbHandler" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" /> </handlers> 尽管如此,ASP.NET无法处理请求,我正在寻找有关调试的一些想法?这是失败的动作方法,PUT和一个有效的动作方法,一个GET. public class ProductsController : ApiController { [HttpPut] [Route("api/products")] public AddProductResponse AddProduct(AddProductRequest request) { return new AddProductResponse(); } [HttpGet] [Route("api/products/manufacturers")] public ManufacturersResponse GetProductManufacturers() { var productService = new ProductService(); var manufacturers = productService.GetManufacturers(); return new ManufacturersResponse { Manufacturers = manufacturers.OrderBy(m => m.BusinessName) }; } } 似乎我在请求生命周期的早期错过了手. FREB似乎显示了PUT的GENERAL_SHILD_REQUEST_START,不知道为什么托管管道正在创建最终落入无法处理PUT的DefaultDocumentModule的额外子请求. 解决方法
看看你的场景(感谢分享你的repro项目),问题是投影将webapi放在项目内的/ api文件夹中.
具体来说还有/ api / products,所以当http / ap的/ api /产品被命中时,IIS将其视为目录浏览请求,并拒绝在其上提供PUT动词. 解决方案:重命名api文件夹,通常尝试不在正在调用REST API的位置映射文件夹.这不是部署中的问题,但在本地Web应用程序上,文件夹就在那里,IIS首先处理它. 另一种解决方案(虽然不太推荐)是使用 <modules runAllManagedModulesForAllRequests="true" /> 这将让ASP.NET在IIS之前获得第一次破解,但这不是一个推荐的做法,只是为了解决这样的小问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- AutoMapper在asp.net core的使用
- 如何使用WebMatrix在ASP.NET网页中创建自定义错误页面?
- asp.net-mvc – System.Web.Optimization与Microsoft.Web.O
- asp.net-mvc – 如果ModelState表示该字段无效,则清除字段值
- asp.net中执行exe应用程序
- asp.net – 在subversion提交时忽略的文件夹
- asp.net-mvc – 带有MVC 3文件上传的空Request.Files
- asp.net-mvc – 具有服务层和存储库层的ASP.NET MVC,应该在
- ASP.NET MVC:访问日志
- 有没有办法将一个onclick事件添加到ASP.NET标签服务器控件?
- ASP.NET Web API v2并使用E??LMAH记录所有错误/异
- asp.net-mvc – 在.aspx上获得MVC Razor青睐.csh
- asp.net – HttpContext.Current.User!= HttpCo
- asp.net-mvc – 在将站点托管到IIS之后,AngularJ
- TFS 2010 流程、报表、升级相关联结
- asp.net-mvc – 今天在.NET中实现RESTful架构的最
- ASP.NET Core 配置 EF 框架服务 - ASP.NET Core
- ASP.NET Repeater ItemDataBound事件中等效的Eva
- asp.net:控件/页面的页面生命周期顺序与其中的用
- asp.net – 如何将http请求转发到https网址