首页 新闻 会员 周边

.net core swagger 访问HttpDelete/HttpPut方法报405

0
悬赏园豆:15 [已解决问题] 解决于 2019-01-07 13:57

.net core swagger 不支持httpdelete/httpput方法,报405错误,而用postman试了下,接口是可以访问的(前端也可正常调用)。试了好多方法,包括什么移除webdev、在使用中间件的时候配置SupportedSubmitMethods。都没用。

问题补充:

本地调试和发布到iis10.0都不行。开发环境用的vs2017,.NET Core2.2,Swagger4.0.1

「萝卜小兔子头」啊的主页 「萝卜小兔子头」啊 | 初学一级 | 园豆:158
提问于:2019-01-07 10:27

asp.net core 版本是多少?iis 版本是多少?

dudu 5年前

@dudu: 本地调试和发布到iis10.0都不行。开发环境用的vs2017,.NET Core2.2,Swagger4.0.1

萝卜小兔子头 5年前
< >
分享
最佳答案
0

本地应该是没问题的.问题就是webdeploy
我以前也遇到过.方法被发布用拦截了.

收获园豆:7
吴瑞祥 | 高人七级 |园豆:29449 | 2019-01-07 10:43

我这边本地也有问题,,

「萝卜小兔子头」啊 | 园豆:158 (初学一级) | 2019-01-07 10:44

@萝卜小兔子头: 意思是.同样的接口在postman里.用delete/put方法就能访问.
在swagger的模拟请求里就报405错误?

吴瑞祥 | 园豆:29449 (高人七级) | 2019-01-07 10:50

@吴瑞祥: 是的,前端都可以调用,就是用swagger就报405错误

「萝卜小兔子头」啊 | 园豆:158 (初学一级) | 2019-01-07 10:51

@萝卜小兔子头: 那你按f12 看2次请求的报文.发上来.

吴瑞祥 | 园豆:29449 (高人七级) | 2019-01-07 12:15
其他回答(4)
1

建议将日志级别设置为 debug ,然后看一下是哪个地方返回了 405

收获园豆:8
dudu | 园豆:30994 (高人七级) | 2019-01-07 11:10

都没用进入到action。。

@萝卜小兔子头: 只要进入 asp.net core runtime 就会有日志

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2019-01-07 11:26
0

解决了,原来是自己秀逗了。。

「萝卜小兔子头」啊 | 园豆:158 (初学一级) | 2019-01-07 13:56
0
天琊蓝 | 园豆:188 (初学一级) | 2019-01-07 17:28

谢谢,我的问题解决了~~本来想妥协用post,不过强迫症忍不了,试了N种方法终于成功了,继续用四种请求方式。

@萝卜小兔子头: 亲,说下怎么解决的呀
之前写了两个项目没问题,新搭的项目怎么也跑不通。

支持(0) 反对(0) 如虎添翼 | 园豆:200 (初学一级) | 2019-05-13 15:59

@如虎添翼: 也是这个问题吗?

@如虎添翼:

iis的webconfig主要是这一段,还有要注意路由是否写正确。

<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
<add name="aspNetCore" path="" verb="" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\OTC.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
<rewrite>
<rules>
<rule name="Handle History Mode and custom 404/500" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
0

你这人不行,只有问题,没有解决方法

守墓老人 | 园豆:26 (初学一级) | 2019-12-23 16:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册