您正在查找的页面无法显示,因为正在使用无效方法(HTTP 动词)

The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used

在 SSO 身份验证后重定向到 Angular 网络应用程序(Azure 网络应用程序)时,我收到错误消息“无法显示您正在查找的页面,因为方法无效 (正在使用 HTTP 动词)。"

发生此错误的原因有多种。您正在使用的方法可能是不允许的 - 例如,如果客户端通过将 POST 方法发送到未配置为处理它的页面来发出 HTTP 请求。您可能有一个 API 需要一些参数,但您没有从 Angular.

传递这些参数

您可以参考 MSDN 和 Whosebug 上的几个 threads,其他人也遇到了同样的问题。

以下是 official Microsoft guide 中的一些故障排除步骤。

原因一:客户端使用不符合HTTP规范的HTTP方法发起HTTP请求,导致出现该问题。

决议 1:

确保客户端发送的请求包含有效的 HTTP 方法。为此,请按照下列步骤操作:

  1. 单击“开始”,在“开始搜索”框中键入记事本,右键单击“记事本”,然后以管理员身份单击 运行。 注意:如果系统提示您输入管理员密码或进行确认,请键入密码或进行确认。
  2. 在“文件”菜单上,单击“打开”。在“文件名”框中,键入 %windir%\system32\inetsrv\config\applicationhost.config,然后单击“打开”。
  3. 在 ApplicationHost.config 文件中,找到标签。
  4. 确保所有处理程序都使用有效的 HTTP 方法。
  5. 保存 ApplicationHost.config 文件。

原因 2:出现此问题是因为客户端通过向配置为由 StaticFile 处理程序处理的页面发送 POST 方法来发出 HTTP 请求。例如,客户端将 POST 方法发送到静态 HTML 页面。但是,为 StaticFile 处理程序配置的页面不支持 POST 方法。

解决方案 2:

将 POST 请求发送到配置为由 StaticFile 处理程序以外的处理程序处理的页面(例如,ASPClassic 处理程序)。或者,更改由 StaticFile 处理程序处理的请求,使其成为 GET 请求而不是 POST 请求。