[英]Swagger gives me HTTP Error 403.14 - Forbidden
我正在嘗試將Swagger與Web API結合使用。 我只是使用Visual Studio隨附的ASP.NET 4.6模板中的“ Azure API App”模板,其中包括Swashbuckle.Core
和SwaggerConfig.cs
。 該API可以正常工作(我能夠成功調用它),但是如果我嘗試轉到“ http:// mybaseurl / swagger / ”, 則會收到此錯誤:
HTTP錯誤403.14-禁止Web服務器配置為不列出此目錄的內容。
看來Swagger尚未加載。 還有其他人知道嗎? 我似乎無法解決這個問題。 謝謝,如果可以提供更多詳細信息,請告訴我。
這是我的SwaggerConfig.cs的樣子:
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]
namespace With.Api
{
public class SwaggerConfig
{
public static void Register(HttpConfiguration config)
{
var thisAssembly = typeof(SwaggerConfig).Assembly;
config.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "With.Api");
})
.EnableSwaggerUi();
}
}
}
這是一個古老的問題,但對面臨相同問題的人會有所幫助
如果您的項目在根目錄下有一個名為swagger
的文件夾,它將發生沖突,您將無法通過hostname/swagger
訪問hostname/swagger
。
解決方案是將Swagger文件夾重命名為另一個名稱,然后它可以工作。
我只是有同樣的問題。 當我將應用程序部署到Azure時,它運行良好,但是當我在本地啟動它時,Swagger不會像上述那樣顯示。 恢復到以前知道的以前的版本也沒有幫助,因此它似乎與IIS express有關。 我不完全確定是什么引起了該問題(我更改了一些與SSL相關的設置),但是當我刪除.vs文件夾(其中包含applicationhost.config文件)並重新啟動Visual Studio時,它又開始工作。
我有同樣的問題。 在嘗試了幾件事之后,它仍然無法正常工作。 然后,我嘗試按照下面的鏈接中的建議更改Web API應用程序的端口號,然后它起作用了。 我不確定是什么引起了問題。
嘗試使用此URL,而不是http://mybaseurl/swagger/
,即http://mybaseurl/swagger/ui/index
由於某種原因,更改Application_Start中的調用順序將解決問題,這就是我所擁有的:
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
**GlobalConfiguration.Configure(SwaggerConfig.Configure);**
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
XmlConfigurator.Configure();
這在.net核心Web API中解決了我
安裝此nuget包Microsoft.AspNetCore.StaticFiles
我有這個問題,它是路由和靜態目錄沖突。 對於Web Api 2,請確保沒有名為“ swagger”的靜態文件夾。 對於.NET Core,請刪除wwwroot中名為“ swagger”的文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.