DELETE 方法 .NET WebAPI 不起作用

2023-12-11

我已经看过大量关于此问题的帖子,但我的新 WebAPI 的 DELETE 方法根本不起作用,并且使用 Windows 7 32 位、IIS 7.5 返回 404。

我试过了

  • 卸载 WebDAV
  • 将 PUT、DELETE、OPTIONS 添加到 ExtensionlessUrlHandler-Integrated-4.0 处理程序(和 32 位/64 位处理程序)。
  • 允许所有模块运行。

一切都无济于事,全部返回 404。如果我将 DELETE 类型更改为 GET,那么该服务将完美运行 GET 命令。

大家对此还有其他想法吗?这让我疯狂。

EDIT:

我像这样调用 DELETE 方法(中介器是 jQuery 调用的包装器):

mediator.publish("AjaxCall", {
                url: "/api/files/" + $(a.currentTarget).data("fileid"),
                type: "DELETE",
                }
            });

和WebAPI:

// DELETE api/<controller>/5
// [HttpDelete] - Tried this too
public void Delete(int fileId)
{
     Files.DeleteFile(fileId);
}

以及相关的web.config:

<handlers>
      <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>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule" />
    </modules>

解决方案是在正确的 applicationHost.config 文件中添加 PUT 和 DELETE 动词。

对于 IIS:

转到位置:C:\Windows\System32\inetsrv\config 并将 applicationHost.config 文件编辑为:

 <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" />  

对于 IIS Express,请转到: %userprofile%\documents\iisexpress\config\ 并在 applicationHost.config 文件中执行相同的操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DELETE 方法 .NET WebAPI 不起作用 的相关文章

  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • ASP.NET Web API 客户端 ProgressMessageHandler Post 任务卡在 WinForm 应用程序中

    我在用着HttpClient and ProgressMessageHandler来自MS ASP NET Web API 客户端库 http nuget org packages Microsoft AspNet WebApi Clien
  • 类特定的新删除运算符是否必须声明为静态

    标准中是否要求类特定的 new new delete 和 delete 是静态的 我可以让它们成为非静态成员运算符吗 为什么需要它们是静态的 它们被隐式声明为静态 即使您没有键入 static
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • 为什么 set_symmetry_difference 无法与比较器一起使用?

    Example program include
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 如何在c的case语句中使用省略号?

    CASE expr no commas ELLIPSIS expr no commas 我在c的语法规则中看到了这样的规则 但是当我尝试重现它时 int test float i switch i case 1 3 printf hi 它失
  • 在 EnvDTE 中调试时捕获 VS 局部变量

    是否可以使用 EnvDTE 进行 vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据 或者可以通过其他方法吗 我想创建一个自定义的本地窗口 我们可以修改它以根据需要显示一些较重的内容 而无需为高级用户牺牲原始的本地
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 新任务中使用的依赖注入服务

    我在需要时使用依赖项注入来访问我的服务 但我现在想要创建一个并发任务 但这会由于依赖项注入对象及其生命周期而导致问题 我读过这篇文章 标题 防止多线程 Link http mehdi me ambient dbcontext in ef6
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • ASP.NET Core MVC 视图组件搜索路径

    在此处的文档中 https learn microsoft com en us aspnet core mvc views view components view aspnetcore 2 2 https learn microsoft
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • C++原子CAS(比较和交换)操作不改变值

    在下面的示例中 实际发生了什么 为什么兑换成功后价值没有变化 Live https wandbox org permlink f5VYSKfQ9UJqa8FQ std atomic
  • Google Play 排除设备

    我有以下内容AndroidManifest xml
  • WPF 指定控件的长度(以毫米为单位)

    这些天我正在开发一个复杂的 WPF 应用程序 到目前为止 这是一次很好的经历 但我被困在一个点上 它是一个设计器应用程序 用户将自定义控件拖动到画布上并设置其属性 目前 用户可以以 cm in px 和 pt 为单位指定控件的长度 我需要给
  • 带有格式化程序的 SwiftUI TextField 不起作用?

    我正在尝试更新数字字段 因此我使用带有 formatter 参数集的 TextField 它可以很好地将数字格式化到输入字段中 但在编辑时不会更新绑定值 在没有指定格式化程序的情况下 TextField 可以正常工作 在字符串上 这是一个错
  • Bootstrap 3 不同高度的响应式列

    EDIT定价表的内容将全部动态生成 我无法预测它们的高度 我只是使用400px图表的情况 所以我无法为每列设置静态高度作为修复 我有 8 个定价表 他们都是similar高度接近 400px 最大 红色方块 高度为 430 像素 最小高度为
  • 如何使用 vue 3 从字符串渲染组件?

    我正在尝试从字符串渲染组件 但没有成功 我的代码如下
  • 我应该为 mp3 使用哪种 mime 类型

    我正在尝试决定选择哪种 mime 类型来返回 mp3 数据 由 php 提供 根据此 mime 类型列表 http www webmaster toolkit com mime types shtml mp3 audio mpeg3 mp3
  • pyspark中指定多列数据类型更改为不同数据类型

    我有一个数据框 df 由50多个列和不同类型的数据类型组成 例如 df3 printSchema CtpJobId string nullable true TransformJobStateId string nullable true
  • 拒绝访问目录中的所有文件,除非特定的 php 页面是引荐来源网址

    我们将文件存储在 uploads downloads 目录中 可以通过 php 文件以以下方式访问这些文件https www example com request file php file 123 该 PHP 文件查询数据库表并返回存储
  • 在 ionic cordova 中使用 twitter 登录无法使用 $cordovaOauth.twitter

    我想使用 Cordova Oauth 插件集成 Twitter 登录以验证我的混合应用程序中的用户 遵循以下说明ngcordova oauth 演示步骤来自Here 因为回调 URI 必须指向 localhost callback 否则登录
  • 检测字体是否支持变体(如上标和下标)

    WPF 有版式 变体附加属性可让您执行上标和下标 但是 它仅适用于某些字体 对于其他字体 变体完全被忽略 文本正常显示 代码示例和屏幕截图here 由于它默默地退回到无操作状态 我不知道出了什么问题 但我的用户会看到糟糕的行为 有什么方法可
  • 如何在 VueJS 项目构建时使用环境变量

    我正在尝试在期间使用环境变量buildVueJS 应用程序的 CI 作业阶段 我正在使用 GitLab CI 可用的环境变量之一是CI COMMIT SHORT SHA build image node latest stage build
  • SQL:多次重复结果行,并对行进行编号

    我有一个 SQL 查询 结果如下 value count foo 1 bar 3 baz 2 现在我想扩展它 以便每一行都有一个count大于 1 的值出现多次 我还需要对这些行进行编号 所以我会得到 value count index f
  • 调用外部模块时多处理池速度缓慢

    我的脚本正在调用librosa用于计算短音频片段的梅尔频率倒谱系数 MFCC 的模块 加载音频后 我想尽快计算这些 以及其他一些音频功能 因此进行多重处理 问题 多处理变体比顺序处理慢得多 分析显示我的代码 90 以上的时间都花在
  • 如何搜索 sap.m.Tree 中的所有节点?

    我目前正在为我的公司开发 MasterDetail 应用程序 该应用程序提供以节点表示的可扩展类别 节点及其子节点与导航属性的绑定不是问题 但是 如果我想在上面的搜索字段中搜索某个组节点 它只会在四个最高节点之间进行过滤 它可以搜索第一层的
  • 使用 Javascript 将 xml POST 到 api

    我正在尝试发布 XML 数据 然后重定向到当前页面 但我似乎无法让它工作 当我这样做时
  • vscode:如何获取光标在文档中的偏移量?

    我正在开发 vscode 扩展 我想获取对整个文档的光标位置引用 例如 如果我有以下 html lt body gt div p Hello World p div 并且光标位于 body 标记内 在上面的代码中签名 如果从头开始计算文档中
  • Xcode:将数据从 iOS TextField 发送到远程数据库的最简单方法

    我目前在 HostGator com 上有一个在线网络托管 MySQL 数据库 该数据库当前存储我的服务的用户注册信息 目前 在该数据库中存储信息的唯一方法是通过网站上的在线表格 我的目标是通过使用文本字段等在 iOS 应用程序上复制该表单
  • 如何按创建日期顺序显示文件夹?

    我是 PHP 新手 正在开发一个名为 BaboonHut com 的项目 我正在用 PHP 对其进行编码 因为最好的学习方法就是深入研究 无论如何 对于这个问题 下面的代码片段当前获取所有文件夹的名称在某个位置并显示一些信息 但是这些项目当
  • DELETE 方法 .NET WebAPI 不起作用

    我已经看过大量关于此问题的帖子 但我的新 WebAPI 的 DELETE 方法根本不起作用 并且使用 Windows 7 32 位 IIS 7 5 返回 404 我试过了 卸载 WebDAV 将 PUT DELETE OPTIONS 添加到