IIS10默认拒绝PUT和DELETE请求,阻止post

StatusCode: 405, ReasonPhrase: 'Method Not Allowed',

IIS拒绝PUT和DELETE请求是由默认注册的一个名为WebDAVModule的自定义HttpModule导致的。

WebDAV的全称为Web-based Distributed Authoring and Versioning,它是一个在多用户之间辅助协同编辑和管理在线文档的HTTP扩展。该扩展使应用程序可以直接将文件写到Web Server上,同时支持文件的加锁和版本控制。微软是推动WebDAV成为一个标准的主导力量,它自己利用自定义的HttpModule实现了IIS针对WebDAV的支持。

但是这个默认注册(注册名称为WebDAVModule)会拒绝HTTP方法为PUT和DELETE的请求,如果我们的站点不需要提供针对WebDAV的支持,解决这个问题最为直接的方式就是利用如下配置web.config将注册的HttpModule移除即可:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule" />
</modules>
</system.webServer>

 

有些单位防火墙限制了这两个方法put,delete,需要在防火墙中添加允许。

第二种情况

DELETE 语句与 REFERENCE 约束"FK_SUser_U_User"冲突。该冲突发生于数据库"SData",表"dbo.SUser", column 'UserId'。
语句已终止。

右击数据表,选择设计,然后选择关系,将删除约束选择为级联,问题解决。

主要本地安装的sql server 2012,生产环境为sql server express压缩版本,导致版本有差异,非压缩版本不选择级联也正常执行。

声明:本站内容来源于原创和互联网,尊重作者版权,转载请注明来源网址,欢迎收藏,谢谢!