Swashbuckle 运行 基于 katana-owin 的 web api 不适用于 IIS,但适用于 IIS Express
Swashbuckle running with katana-owin based web api doesnt work with IIS but works with IIS Express
我想我遇到了与此类似的问题 post-
Webactivator doesn't run on IIS 7
Swashbuckle 运行 基于 katana-owin 的 Web api 能够与 IIS Express 一起工作。
假设下面的所有网址都有一个 "http" 前缀。
我可以浏览到 localhost:8085/swagger 之类的内容,它会将我正确重定向到 localhost:8085/swagger/ui/index
但是当发布到 IIS 时重定向到 localhost/swagger/ui/index 而不是 localhost/myapp/swagger/ui/index,这会导致 404。请注意,即使在发布时指定了应用程序名称,swashbuckle/swagger 也不知道并且只使用没有应用程序名称的路径库。
基本上它只是获取站点根目录 URL 而不是用于调用 /swagger
的应用程序 URL
这个问题有什么解决办法吗?
我遇到了同样的问题。使用以下代码解决了这个问题 (c.RootUrl)
config.EnableSwagger(c =>
{
c.IncludeXmlComments(GetXmlCommentsPath());
c.SingleApiVersion("v1", "yourAPI");
c.RootUrl(req => req.RequestUri.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/").TrimEnd('/'));
});
我想我遇到了与此类似的问题 post- Webactivator doesn't run on IIS 7
Swashbuckle 运行 基于 katana-owin 的 Web api 能够与 IIS Express 一起工作。
假设下面的所有网址都有一个 "http" 前缀。 我可以浏览到 localhost:8085/swagger 之类的内容,它会将我正确重定向到 localhost:8085/swagger/ui/index
但是当发布到 IIS 时重定向到 localhost/swagger/ui/index 而不是 localhost/myapp/swagger/ui/index,这会导致 404。请注意,即使在发布时指定了应用程序名称,swashbuckle/swagger 也不知道并且只使用没有应用程序名称的路径库。
基本上它只是获取站点根目录 URL 而不是用于调用 /swagger
的应用程序 URL这个问题有什么解决办法吗?
我遇到了同样的问题。使用以下代码解决了这个问题 (c.RootUrl)
config.EnableSwagger(c =>
{
c.IncludeXmlComments(GetXmlCommentsPath());
c.SingleApiVersion("v1", "yourAPI");
c.RootUrl(req => req.RequestUri.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/").TrimEnd('/'));
});