Swagger / Swashbuckle适用于IIS Express,但不适用于IIS

时间:2016-01-19 15:15:22

标签: iis swagger swashbuckle

我使用以下指南将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 /会抛出异常

{"消息":"发生错误。"," ExceptionMessage":"未找到映射 - 索引/" " ExceptionType":" Swashbuckle.SwaggerUi.AssetNotFound""堆栈跟踪":"在Swashbuckle.SwaggerUi.EmbeddedAssetProvider.GetAsset(String rootUrl,String path)\ r \ n在Swashbuckle.Application.SwaggerUiHandler.SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)"}

问题似乎是因为IIS重定向我并在URL的末尾添加了一个尾部斜杠(这也是错误信息所说的内容)。

我有

问题:为什么IIS会在网址中添加尾部斜杠,以及我有什么选择让swashbuckle在IIS中工作?

1 个答案:

答案 0 :(得分:0)

有同样的问题:我曾尝试更改几个IIS设置,Swagger停止工作,恢复设置没有帮助。

我这样做是为了让它再次发挥作用:

  1. 以管理员身份使用 NOTEPAD (Notepad ++或任何其他编辑器在此处无效)打开C:\ Windows \ System32 \ inetsrv \ config \ applicationHost.config。
  2. 转到<sites><application>标记(托管您的招摇应用程序),并确认没有任何不合适的地方。我错误配置的Swagger设置由于某种原因未在此处恢复。手动清除设置后跟iisreset修复了问题。