405不允许使用的方法Web API 2

迈克·佩伦努德(Mike Perrenoud)

我遍历了所有我能找到的关于SO等的文章。我对进行了更改,Web.config以符合答案,因为它们似乎都指向删除WebDAV模块和处理程序。

但是,我仍然收到错误:

405方法不允许

请求的资源不支持http方法“ PUT”。

注意:这最初只是一个MVC 4项目。我添加了工件以支持Web API。好像我可能错过了一些东西。

注意:GET从Angular进行调用工作正常。

Web API路由配置

configuration.Routes.MapHttpRoute(
    name: "Default API",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { action = "Get", id = RouteParameter.Optional },
    constraints: new { id = @"[\da-z-]{36}" });

configuration.Routes.MapHttpRoute(
    name: "Default API with Action",
    routeTemplate: "api/{controller}/{action}",
    defaults: new { action = "Get" });

var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
formatter.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();

Web.config

<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule" />
</modules>
<handlers accessPolicy="Read, Execute, Script">
  <remove name="WebDAV" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

PUT API输入

public async Task<IHttpActionResult> Put([FromBody] EditUserViewModel viewModel)

客户端

vm.model.$update(function () {
    $state.go(userStates.app);
});

是否有可能进入第二种路由配置?如果是这样,如何验证.NET尝试使用的路由配置?

迈克·佩伦努德(Mike Perrenoud)

最后,似乎是我试图使路由表复杂化的事实。我最终将其回滚至此:

configuration.MapHttpAttributeRoutes();

configuration.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional });

请注意我也添加了一个事实configuration.MapHttpAttributeRoutes();

在这两个更改之后,一切都很好,不管您相信与否。Web.config如下所示:

<handlers>
  <remove name="ExtensionlessUrl-Integrated-4.0"/>
  <add name="ExtensionlessUrl-Integrated-4.0"
       path="*."
       verb="*"
       type="System.Web.Handlers.TransferRequestHandler"
       preCondition="integratedMode,runtimeVersionv4.0"
       responseBufferLimit="0" />
</handlers>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MVC-Web API:不允许使用405方法

来自分类Dev

Web API放置请求生成Http 405方法不允许错误

来自分类Dev

HTTP状态405-Rest API的方法不允许错误

来自分类Dev

具有CORS和AttributeRouting的ASP.NET Web API2不允许HTTP PUT

来自分类Dev

Web.API的HTTP错误405方法不允许错误

来自分类Dev

选项405(不允许使用方法)Web API 2

来自分类Dev

$ http.delete()通过AngularJS到Laravel后端API的结果为405(不允许使用方法)

来自分类Dev

Yii2:注销用户时不允许使用方法(#405)

来自分类Dev

405 WebAPI2上不允许的方法(OWIN)

来自分类Dev

不允许在DELETE上使用Owin自托管Web API 405方法

来自分类Dev

JQuery Ajax POST到Web API返回405方法不允许

来自分类Dev

不允许使用Instagram API OAuth 405

来自分类Dev

Web api 2 POST方法不允许使用405方法

来自分类Dev

Dropbox HTTP API始终返回“当前不允许使用API v2”。

来自分类Dev

模拟器连接到Web API时不允许使用405方法

来自分类Dev

discord oauth2 api调用返回“ 405:不允许的方法”

来自分类Dev

appannie API错误:方法不允许

来自分类Dev

MVC-Web API:不允许使用405方法

来自分类Dev

具有CORS和AttributeRouting的ASP.NET Web API2不允许HTTP PUT

来自分类Dev

对API的Ajax调用返回错误HTTP / 1.1 405方法不允许

来自分类Dev

JQuery Ajax POST到Web API的返回405方法不允许

来自分类Dev

不允许使用Api 405方法

来自分类Dev

Dropbox HTTP API始终返回“当前不允许使用API v2”。

来自分类Dev

模拟器连接到Web API时不允许使用405方法

来自分类Dev

405 DocuSign SOAP API C#客户端中不允许使用的方法

来自分类Dev

不允许使用Cisco REST API的方法

来自分类Dev

Python webapp2中的“405方法不允许”

来自分类Dev

“方法不允许(#405 状态代码)”从 C# 中的控制台应用程序将数据放在 Web api 上

来自分类Dev

自定义 Web api 上的 POST 405(不允许的方法)

Related 相关文章

  1. 1

    MVC-Web API:不允许使用405方法

  2. 2

    Web API放置请求生成Http 405方法不允许错误

  3. 3

    HTTP状态405-Rest API的方法不允许错误

  4. 4

    具有CORS和AttributeRouting的ASP.NET Web API2不允许HTTP PUT

  5. 5

    Web.API的HTTP错误405方法不允许错误

  6. 6

    选项405(不允许使用方法)Web API 2

  7. 7

    $ http.delete()通过AngularJS到Laravel后端API的结果为405(不允许使用方法)

  8. 8

    Yii2:注销用户时不允许使用方法(#405)

  9. 9

    405 WebAPI2上不允许的方法(OWIN)

  10. 10

    不允许在DELETE上使用Owin自托管Web API 405方法

  11. 11

    JQuery Ajax POST到Web API返回405方法不允许

  12. 12

    不允许使用Instagram API OAuth 405

  13. 13

    Web api 2 POST方法不允许使用405方法

  14. 14

    Dropbox HTTP API始终返回“当前不允许使用API v2”。

  15. 15

    模拟器连接到Web API时不允许使用405方法

  16. 16

    discord oauth2 api调用返回“ 405:不允许的方法”

  17. 17

    appannie API错误:方法不允许

  18. 18

    MVC-Web API:不允许使用405方法

  19. 19

    具有CORS和AttributeRouting的ASP.NET Web API2不允许HTTP PUT

  20. 20

    对API的Ajax调用返回错误HTTP / 1.1 405方法不允许

  21. 21

    JQuery Ajax POST到Web API的返回405方法不允许

  22. 22

    不允许使用Api 405方法

  23. 23

    Dropbox HTTP API始终返回“当前不允许使用API v2”。

  24. 24

    模拟器连接到Web API时不允许使用405方法

  25. 25

    405 DocuSign SOAP API C#客户端中不允许使用的方法

  26. 26

    不允许使用Cisco REST API的方法

  27. 27

    Python webapp2中的“405方法不允许”

  28. 28

    “方法不允许(#405 状态代码)”从 C# 中的控制台应用程序将数据放在 Web api 上

  29. 29

    自定义 Web api 上的 POST 405(不允许的方法)

热门标签

归档