【问题标题】:Swagger / Swashbuckle works in IIS Express but not IISSwagger / Swashbuckle 适用于 IIS Express 但不适用于 IIS
【发布时间】:2016-04-25 03:20:27
【问题描述】:

我使用以下指南将 Swashbuckle 安装到我的 Web api 应用程序中: http://bitoftech.net/2014/08/25/asp-net-web-api-documentation-using-swagger/

当我在本地 IIS express / Cassini 安装上运行它并将我的浏览器指向 http://localhost:59988/swagger/

但是,通过 IIS8.5 访问应用程序时,它似乎不起作用,例如在 http://my.localhost/swagger/

我被重定向到引发异常的 /swagger/ui/index/

{"Message":"发生错误。","ExceptionMessage":"找不到映射 - 索引/","ExceptionType":"Swashbuckle.SwaggerUi.AssetNotFound","StackTrace":" 在 Swashbuckle.SwaggerUi .EmbeddedAssetProvider.GetAsset(String rootUrl, String path)\r\n at Swashbuckle.Application.SwaggerUiHandler.SendAsync(HttpRequestMessage request, CancellationToken cancelToken)"}

问题似乎源于 IIS 重定向我并在 url 末尾附加一个斜杠(这也是错误消息所说的内容。)

我有

问题:为什么 IIS 会在 url 中添加斜杠,我有哪些选择可以让 swashbuckle 在 IIS 中工作?

【问题讨论】:

  • 您是否将输出 xml 设置为也在您的发布配置中?即 - 第 3 步。

标签: iis swagger swashbuckle


【解决方案1】:

遇到了同样的问题:我曾尝试更改几个 IIS 设置,但 Swagger 停止工作,恢复设置也无济于事。

我这样做是为了让它再次工作:

  1. 以管理员身份使用 NOTEPAD(Notepad++ 或任何其他编辑器在此处不起作用)打开 C:\Windows\System32\inetsrv\config\applicationHost.config。
  2. 移动到<sites><application> 标记(您的swagger 应用程序所在的位置)并确认没有任何不妥之处。由于某种原因,我对 Swagger 的错误配置设置没有在此处恢复。手动清理设置,然后执行 iisreset 修复了该问题。

【讨论】:

    猜你喜欢
    • 2015-07-02
    • 1970-01-01
    • 2013-04-30
    • 2012-12-01
    • 2013-01-14
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多