IIS 7.5 + 为 RESTFul 服务启用 PUT 和 DELETE,无扩展

2023-12-07

我试图了解 IIS 7.5 如何处理 POST 和 PUT 请求。

我正在使用 OpenRasta 框架编写 RESTful 服务。 POST 操作可以正常工作,但对同一 URL 的 PUT 操作则不然。它返回如下错误

Detailed Error Information
Module: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error Code: 0x80070002

url 如下所示:“http://localhost/MyService/Resource.Something.manifest”

相同的设置在 Visual Studio 开发 IIS 中运行良好。

Solution

基本上默认的 ExtensionlessUrlHandler 不接受 PUT 和 DELETE 动词。只需添加它们即可。

<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />

为了让 IIS 7.5 接受 PHP 5.4 快速 CGI 驱动的 REST API 的 PUT 和 DELETE,我必须禁用 WebDAV 模块。否则,WebDAV 模块将使用 PUT 或 DELETE 来干预 HTTP 请求。然而,要完成这项工作有点令人困惑,我可能错过了一些步骤或以其他顺序完成。

这些行被放置为<system.webServer>- 元素在网络配置在应用程序根目录中。

<modules>
    <remove name="WebDAVModule" />
</modules>
<handlers>
    <remove name="WebDAV" />
</handlers>

希望这可以减少一些挫败感。似乎服务器的默认设置是接受任何未列出的 HTTP 动词 - 请参阅下面的设置Request filtering -> HTTP Verbs -> Edit feature Settings。人们可以考虑明确添加允许的动词。允许的动词可以在附加此片段后指定,也可以作为<system.webServer>.

    <security>
        <requestFiltering>
            <verbs allowUnlisted="false">
                <add verb="GET" allowed="true" />
                <add verb="POST" allowed="true" />
                <add verb="DELETE" allowed="true" />
                <add verb="PUT" allowed="true" />
            </verbs>
        </requestFiltering>
    </security>

在客户端计算机上,可以从此处卸载 WebDAV 模块:

Control Panel -> Uninstall Program -> Turn Windows features on or off -> IIS -> World Wide Web Services -> Common HTTP feautre -> WebDAV Publishing

让它发挥作用的最后一个措施是编辑applicationhost.config在发现C:\Windows\System32\inetsrv\config。之内<system.webServer> -> <handlers>你会看到一个 php 条目,其中包含verb="GET,HEAD,POST- 修改它以添加您需要的动词,例如:

<add name="PHP54_via_FastCGI" path="*.php" verb="GET,HEAD,PUT,DELETE,POST"/>
                                                                 |
                                                                 |
                                                                 |
append verbs here  ----------------------------------------------|
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS 7.5 + 为 RESTFul 服务启用 PUT 和 DELETE,无扩展 的相关文章

  • 64 位 ASP.NET MVC 应用程序无法运行

    首先 我之前曾设法让我的一个 64 位测试 Web 应用程序在这台机器上运行 当我为这个项目制作原型时 我已经在 32 位环境中工作了几周 意识到我需要将应用程序切换到 64 位 当我这样做 在项目中将目标平台设置为 x64 并重新部署时
  • “此操作需要IIS集成管道模式。”

    我有一个正在 Windows 8 1 NET 4 5 1 IIS 8 5 在 Integrated AppPool 下 Visual Studio 2013 上开发的 Web 应用程序 默认模板包括 ASP NET Identity Owi
  • 如何为WCF服务创建重定向?

    我的网站 A 上托管了一个 WCF 服务 我还有另一个网站 B 它使用 IIS URL 重写将所有请求重定向到我的网站 A 但是 站点 B 不处理任何对 svc 文件的请求 返回 404 not find 知道如何让它发挥作用吗 UPD重定
  • IIS7 和 MVC 2 出现 403.14 错误 已尝试了所有建议的修复方法

    ASP Net 4 框架上的 MVC 2 项目 我尝试在 IIS7 上设置它 但出现 403 14 错误 是的 我尝试了微软的修复 它启用了目录浏览 但与我想要的完全错误 是的 我运行了 aspnet regiis i 不 它仍然无法正常工
  • 无法在 Web 服务器上启动调试。远程服务器返回错误:(404) 未找到。在 Visual Studio 中启动调试时出错

    我已经将项目设置为在 IIS 上运行一段时间了 当我按 F5 时 它确实连接没有问题 但最近它停止工作 当我按 F5 press 时确实收到此错误Debug gt Start debugging 无法在 Web 服务器上启动调试 远程服务器
  • 比较两台服务器的 IIS 设置的最快方法是什么?

    对于在两台运行 IIS 的 Windows 2003 Server 上运行的应用程序 我得到的结果不一致 有没有办法快速将 IIS 配置转储到文件中进行比较 有没有比较两个 IIS 服务器的好工具 Give 元数据库浏览器 http blo
  • 如何在 IIS 上设置 Mercurial 和 hgweb?

    我一直在寻找关于如何让 hgweb 在 IIS 上工作的不错的说明 但我没有发现太多有价值的信息 There s 这个 一步一步 https www mercurial scm org wiki HgWebDirStepByStep在 Me
  • ASP.NET - 将所有 https 请求重写为 http

    我的问题正是所提出的问题here https stackoverflow com questions 16276860 iis 7 adding ssl to one site all other sites responds to htt
  • 为什么 IIS 不执行我的网站根目录 index.php 文件的 PHP 代码?

    IIS实际上是在发送将代码发送到浏览器而不是执行它 但是 仅针对根http domain com index php file 该文件夹中的所有其他 php 文件和子文件夹中的 index php 文件均按预期执行 我怎样才能执行我的根in
  • appsettings.json 是否受 IIS 保护?

    在旧版 ASP NET 应用程序中 config files cannot通过导航到 URL 即可下载 但新的约定是使用appsettings json 现在 如果我有一个名为的 ASP NET Core 网站contoso com它由 I
  • 如何在 IIS 中手动配置虚拟目录

    我正在尝试让外部 Visual Studio 解决方案在 Visual Studio Professional 2010 的本地副本中工作 当我打开该解决方案时 我看到一条错误消息 指出本地 IIS URL 尚未配置 我想创建一个虚拟目录吗
  • 如何让 webpack 和 iis express 协同工作?

    I have Angular 2 和 Webpack 2 入门 https github com qdouble angular webpack2 starter它通过 webpack dev server 在节点上运行 我如何使用 web
  • IIS 7.0和win2k8中有多少个不同的地方需要设置日期格式

    我正在尝试使用 win2k8 将旧的经典 asp 应用程序迁移到 IIS 7 0 如果可以的话 我绝对不想更改旧代码 我在日期格式的自定义区域选项中设置了日期格式 在控制面板中的区域和语言选项中将其更改为 dd MMM yy 我仍然收到 C
  • 如何让 shell_exec 在 IIS 6.0 上运行

    问题 我有一个 PHP 脚本 它使用shell exec运行 pdf 到文本转换器 为了简化问题 我创建了一个简短的脚本 使用shell exec只是回显的输出dir命令 当我在 Apache 服务器上运行它时 一切都按预期运行 当我切换到
  • 发布到IIS,设置环境变量

    阅读这两个问题 答案 我能够在 IIS 8 5 服务器上运行 Asp net 5 应用程序 Asp net vNext 早期测试版发布到 Windows 服务器中的 IIS https stackoverflow com questions
  • IIS应用程序池回收+quartz调度

    我正在 IIS 7 5 上运行一个 Web 应用程序 它需要偶尔回收 否则内存使用情况会失控 这是我正在研究的问题 当它回收时 它实际上不会运行 直到另一个请求到来 而quartz不会运行 有没有办法让IIS在回收应用程序池后立即自动启动1
  • Web 服务器是否可以向自身发出 HTTPS 请求?

    假设您有两个应用程序 A 和 B 在同一 Web 服务器上运行 您希望应用程序 A 通过 SSL 调用应用程序 B 上的 webService 是否可以使用类似的地址来做到这一点https localhost appsB webServic
  • 使用 MSBuild Web 部署到服务器

    我在 VS 2012 项目中设置了发布配置文件 当我在 VS 中右键单击该项目 选择 发布 并单击 发布 按钮时 它会使用 发布配置文件 中提供的设置将项目发布到服务器 当我使用 msbuild 和命令行时 使用以下语法 msbuild e
  • 如何跟踪我的 Web 服务抛出的 IIS 500 错误

    我已经部署了新版本的 ASP NET Web 服务 当客户端调用此服务时 IIS 日志文件报告错误代码 500 我自己 测试 可以使用该服务 没有任何错误 我在 ASP NET Web 服务中启用了错误日志记录 但没有记录任何错误 这使我相
  • 无法在 Windows 8 上的 IIS 中提供 WCF 服务

    当我尝试在 Windows 8 计算机中的 IIS 上提供 WCF 服务时 出现众所周知的错误 由于扩展配置的原因 无法提供您请求的页面 如果页面是脚本 请添加处理程序 如果应下载该文件 请添加 MIME 映射 旧的解决方法是运行aspne

随机推荐

  • 如何拆分 git repo 并应用 Maven 子模块和 Maven 父模块?

    我需要一些关于如何配置多个存储库的建议 以便它们共享 Maven 父级 并且还配置为 Maven 根项目中的子模块 我正在维护开源项目简单的Java邮件由于可选功能变得越来越大 我计划将项目分成子模块 每个子模块都有自己的 GIT 存储库
  • 如何在方面内使用 ajc 构建参数?

    我需要知道方面内 jar 的名称 以便我可以通过 DeclareParents 创建一个字符串字段 我知道我可以将内容传递给 ajc 编译器 但实际上是否可以使用方面传递的参数 最终结果应该是带有附加字段的类 其中包含我的 jar 的名称作
  • Android 2.2 中的 BackupManager 和 BackupAgent

    我已经查看了文档和示例 BackupRestore 应用程序 并编写了自己的测试应用程序来实现android backupAgent 我延长了BackupAgent类 因为我主要关心的是能够从数据库备份数据 我似乎甚至无法让一个简单的概念验
  • 为什么在非最终类中使用普通 val

    如果课程不是最后一堂课 可能会延长 值有两种可能性 它可能被覆盖并且应该是惰性的 它可能不会被覆盖并且应该是最终的 如果 val 是最终的 您可以假设对它的所有计算都将通过类层次结构进行 如果 val 可能被覆盖 你应该声明它是惰性的 以免
  • 像内置 WP7 一样的图像/照片库

    我正在寻找适用于 Windows Phone 7 的照片库 它的外观和工作方式与内置照片查看器相同 使用轻拂操作幻灯片照片 使用捏合 拖动调整大小 当您轻拂图像时 您可以看到它滑动到下一个图像 并将列表捕捉到该图像 我已经为图像构建了调整大
  • 正则表达式包括字母数字和 _

    我正在尝试创建一个正则表达式来匹配字母数字字符和下划线 这是我的正则表达式 w s 我的印象是这个正则表达式意味着任何字母数字字符 w 下划线 和不 或空格 它是否正确 正则表达式被读取为实际匹配字符串中字符的模式 从左到右 因此您的模式实
  • 最大化直方图下的矩形区域

    我有一个具有整数高度和恒定宽度 1 的直方图 我想最大化直方图下的矩形区域 例如 答案是 6 3 2 使用 col1 和 col2 O n 2 蛮力对我来说很清楚 我想要一个 O n log n 算法 我试图按照最大递增子序列 O n lo
  • Angular4:ng-template 内的组件引用

    我是角度 4 的新手 我想获取 ng template 内组件 验证警报 的句柄
  • 将本机指针转换为 C++\CLI 托管对象引用?

    我有一个通过委托调用的回调 在其中 我需要处理从记录过程到达的缓冲区数据 通常 在非托管上下文中 我可以对 dwParam1 执行reinterpret cast 来获取对象引用 但在托管上下文中 如何将 DWORD PTR 转换为托管对象
  • 多线程场景中的 Microsoft.ACE.OLEDB.12.0 错误

    我在 x64 应用程序中使用Microsoft Access 数据库引擎 2010 Microsoft Office 2016 的一部分 用于处理 mdb 文件 但是 当前版本的 Microsoft Access Database Engi
  • 流程输出仅在流程完成后才可用

    我有一个 Runnable 它从外部调用的 exe 见下文 读取控制台输出并将其写入日志文件和 JTextArea 但在 exe 完全完成之前 我的 Runnable 不会在 JTextArea 中显示控制台输出 如何让它在发生时打印控制台
  • 从外部连接kafka的问题

    我正在使用 hortonwork Sandbox 作为 kafka 服务器 尝试使用java代码从eclipse连接kafka 使用此配置连接到生产者发送消息 metadata broker list sandbox hortonworks
  • 使用endswith读取文件列表在列表中找不到扩展名

    我试图让我的 python 脚本读取一个文本文件 其中包含带有扩展名的文件名列表 并在找到特定扩展名时打印出来 确切地说是 txt 文件 它读取文件并遍历每一行 我通过在 for 语句后放置一个简单的 打印行 进行测试 但当它在行中看到 t
  • Color_FormatSurface 实现

    是否有关于 Color FormatSurface AndroidOpaque 颜色格式的可用文档 我的视频编码器目前不支持这种格式 我应该添加该功能 但我找不到任何有关它的信息 任何帮助 将不胜感激 没有关于它的文档 因为它是不透明的 这
  • 在Azure DevOps中如何使用REST API触发发布?

    我在 Azure DevOps 中构建和发布管道 该管道包含三个不同的阶段 即分阶段 QA 和 PROD 因此 在 QA 槽中完成部署后 我想使用 REST API 触发 PROD 环境 那么 是否可以做同样的事情呢 在单个发布管道中不可能
  • Javascript Date() 构造函数不起作用

    我有一个问题 JavaScriptDate mm dd yyyy 构造函数不适用于 FF 对于 IE 来说效果很好 IE new Date 04 02 2008 gt Wed Apr 2 00 00 00 EDT 2008 FF2 new
  • Instagram OAuthException:您必须提供 client_id

    我一直在尝试在我的网络应用程序中使用 instagram API 的服务器端身份验证 我已按照以下位置提供的步骤进行操作Intagram 的 API 页面 但我不断收到错误you must provide a client id 代码是用n
  • 未捕获的引用错误:__ng_jsonp____req0_finished 未定义于

    我有一个 Angular 应用程序 并且也在使用 JSONP 这是我的服务 import Injectable from angular core import Http Response Headers RequestOptions fr
  • 如何返回列表中以“b”开头的第二个元素

    我有这个函数 其中包含包含字符串的列表 我必须找到此列表中以 b 开头的第二个元素 例如 second elemnt starting with b b a bb gt bb 使用a会更有效发电机 而不是通过迭代整个初始列表来构建以 b 开
  • IIS 7.5 + 为 RESTFul 服务启用 PUT 和 DELETE,无扩展

    我试图了解 IIS 7 5 如何处理 POST 和 PUT 请求 我正在使用 OpenRasta 框架编写 RESTful 服务 POST 操作可以正常工作 但对同一 URL 的 PUT 操作则不然 它返回如下错误 Detailed Err