3

我使用以下指南将 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":"找不到映射 - index/","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 中工作?

4

1 回答 1

0

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

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

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