我使用以下指南将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中工作?
答案 0 :(得分:0)
有同样的问题:我曾尝试更改几个IIS设置,Swagger停止工作,恢复设置没有帮助。
我这样做是为了让它再次发挥作用:
<sites>
和<application>
标记(托管您的招摇应用程序),并确认没有任何不合适的地方。我错误配置的Swagger设置由于某种原因未在此处恢复。手动清除设置后跟iisreset修复了问题。