wcf - WCF 方法在其 HTTP 动词为 PUT 或 DELETE 时被调用两次
问题描述
我有一个从 AJAX/JS 调用的具有多个端点的 WCF 服务。一切正常,除非我去我的日志表。我将对该 wcf 服务的每个调用都存储在一个表中,并且我注意到,如果用于调用方法的动词是 PUT 或 DELETE,则该方法会被调用两次。当然,它对数据没有影响,因为 PUT 和 DELETE 应该是幂等的(我制作了相应的存储过程)。
挖掘这个问题,我用一种方法将 PUT 更改为 POST ,然后只调用一次。改回PUT,又被调用了两次。所以它不能与 DataContracts 相关,正如我在另一篇文章中所读到的。我使用了 SVCTraceViewer 并没有出现任何意外,当然除了两次调用。我还必须补充一点 1) 未安装 WebDav Publishing 2) 我已经检查了 IIS 并且 svc 处理程序已授权所有动词 尽管如此,我越来越相信这是一个 IIS 问题,但我不知道去哪里看. 任何的建议都受欢迎。感谢您花时间阅读这篇文章......并考虑解决我的问题。
解决方案
好的,找到了。以为我会发布答案:我正在使用响应状态代码 204 来放置和删除成功的请求。但是,似乎代码 204 要求页面保留并实际上第二次请求相同的 url。将其更改为 202 :问题已解决。向堆栈 o 致以最诚挚的问候。
推荐阅读
- error-handling - 从内部调用向多个结果添加上下文
- anylogic - 具有相同订单号的多个代理
- ssis - 当有很多相互调用的 pcakage 时如何识别哪个 SSIS 包失败
- typescript - 在特定接口中禁用标识符的驼峰式规则
- ms-access - 如何为需要计算多个字段的现金流量财务报表创建访问报告
- jquery - 聚焦图像的某个部分
- ssh - 端服务器 ssh 转发配置
- javascript - 带有 Vue Js 动态插槽名称的 vue/no-unused-vars
- r - 在R中计算前年和前年之间的余额值
- swift - TableView 中的多个 CollectionView - Swift