【问题标题】:Web API IIS deployment and 403 errorsWeb API IIS 部署和 403 错误
【发布时间】:2016-11-09 23:20:21
【问题描述】:

我设法创建了一个部署包并将其安装在 IIS 上。它没有正确地提供内容。

当尝试访问不会路由到 Web API 应用程序的 URL 或请求没有意义时,服务器会做出适当的响应。例如,尝试点击不存在的 url 会给出 404,或者向仅支持 POST 的路由发出 GET 请求会返回 405 方法,此消息不允许:

{
   "Message": "The requested resource does not support http method 'GET'."
}

所有其他请求都给出 403 禁止错误。对我来说,这表明路由工作正常,并且存在其他一些配置错误。我已经尝试过这里列出的“坏”和“好”解决方案:http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html,但都没有任何区别。

我注意到应用程序没有创建用户数据库表,就像我第一次运行应用程序时它自动创建的那样。我想这可能是相关的。

我相信 IIS 配置正确;它具有 .NET 4 和应用程序池的集成模式。我已确认已通过“添加/删除 Windows 功能”对话框安装了 ASP.NET 4.5。

我尝试托管的应用程序基于:https://github.com/MikeWasson/LocalAccountsApp。我做了非常小的改变。在本地一切正常。

服务器统计:

  1. Windows Server 2012 R2
  2. SQL Server 2016
  3. IIS 8.5

【问题讨论】:

  • 刚刚测试了一个不需要授权的端点,请求就超时了。
  • IIS 正在为这些超时记录 302(尽管什么都不发送)

标签: c# asp.net iis asp.net-web-api


【解决方案1】:

所以,根本问题是我没有为该站点设置 https 绑定。这被一些事情掩盖了,主要是端点的行为不一致。一个端点被 IIS 或 Web API 重定向到 https 绑定(可能是因为某些设置强制它),而另一个端点很高兴为我提供上面的 403/405 错误。

【讨论】:

    猜你喜欢
    • 2014-08-07
    • 2015-01-13
    • 1970-01-01
    • 2018-12-30
    • 2011-01-18
    • 1970-01-01
    • 2017-03-23
    • 2017-02-24
    • 2016-12-06
    相关资源
    最近更新 更多