部署 dotnetcore 5 web api 到 iis 给出 404
Deploying dotnetcore 5 web api to iis gives 404
我有一个带有 .NET 5 的 Web API 项目(直接从 visual studio Asp.NET Core Web API 的模板创建),当从 Visual studio 进行调试,尝试将其部署到安装了 .NET 5 托管捆绑包的 IIS 服务器,部署显然运行良好,但是当我输入 url 时,我有一个 404。有一个单独的 MVC .NET 5 项目,我以相同的方式部署它并且运行良好。
想知道是否有人可以指出我正确的方向,找不到我在这里缺少的东西。
搜索并弄乱 Startup.cs 文件后,我注意到
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "api v1"));
在验证 if(env.IsDevelopment()) 中,但是 api 端点工作得很好,只是它不起作用,因为我看不到 Swagger网站,可能是因为您不想向所有人公开您的 api...感觉我在某处遗漏了一些解释,但现在一切都很好。
如果您已经将NET5API部署到本地IIS进行开发建议,您应该使用web.config文件
将环境设置为开发
<aspNetCore processPath="dotnet" arguments=".\NewDealerWebAPI.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" >
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore
遇到了同样的问题。配置后,尝试浏览时出现404错误。
原因是,Swagger 页面将仅针对开发环境进行如下配置(在 Startup.cs 中)。
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "AppName v1"));
}
如果我们输入正确的 url,API 将可用。
如果您还想查看 Swagger 文件
要么更改 startup.cs 中的代码,删除对
的检查
if (env.IsDevelopment())
或者在您的 web.config 文件中将环境设置为开发。
您可以按照本网站上的步骤解决您的问题。
我有一个带有 .NET 5 的 Web API 项目(直接从 visual studio Asp.NET Core Web API 的模板创建),当从 Visual studio 进行调试,尝试将其部署到安装了 .NET 5 托管捆绑包的 IIS 服务器,部署显然运行良好,但是当我输入 url 时,我有一个 404。有一个单独的 MVC .NET 5 项目,我以相同的方式部署它并且运行良好。
想知道是否有人可以指出我正确的方向,找不到我在这里缺少的东西。
搜索并弄乱 Startup.cs 文件后,我注意到
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "api v1"));
在验证 if(env.IsDevelopment()) 中,但是 api 端点工作得很好,只是它不起作用,因为我看不到 Swagger网站,可能是因为您不想向所有人公开您的 api...感觉我在某处遗漏了一些解释,但现在一切都很好。
如果您已经将NET5API部署到本地IIS进行开发建议,您应该使用web.config文件
将环境设置为开发<aspNetCore processPath="dotnet" arguments=".\NewDealerWebAPI.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" >
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore
遇到了同样的问题。配置后,尝试浏览时出现404错误。
原因是,Swagger 页面将仅针对开发环境进行如下配置(在 Startup.cs 中)。
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "AppName v1"));
}
如果我们输入正确的 url,API 将可用。 如果您还想查看 Swagger 文件
要么更改 startup.cs 中的代码,删除对
的检查if (env.IsDevelopment())
或者在您的 web.config 文件中将环境设置为开发。
您可以按照本网站上的步骤解决您的问题。