【问题标题】:Publish .NET CORE 5.0 API to IIS将 .NET CORE 5.0 API 发布到 IIS
【发布时间】:2021-07-18 19:40:05
【问题描述】:

这两天我一直在苦苦挣扎。
有谁知道是什么问题?我尝试将我的 .net 核心 API 发布到 IIS,但浏览网页时总是失败。

我已经按照webpage 那样发布了相同的步骤。

我在服务器上浏览后,http://127.0.0.1:5100/swagger/index.html,页面说没有找到网页。我确定没有使用5100 端口的系统/应用程序。

【问题讨论】:

  • 你要告诉我们你做了什么吗?还是只是有效文章的链接? 如何您发布了?你是怎么把它送到网络服务器的?网络服务器上是否有网站正在运行?你在同一个盒子上吗(或者 127.0.0.1 不起作用)...
  • 嗯,我做的和链接一样。在那个链接上,打开大摇大摆是成功的。但我不是。我应该检查哪一部分?
  • 最后它说你在服务器上的文件夹应该已经发布了文件,但我看不到它描述文件是如何到达那里的(坦率地说,我对阅读那篇文章不感兴趣更多细节)。你的服务器上有文件吗?
  • @Felix,是的,当然。我使用文件系统发布,然后我复制到 wwwroot 文件夹。
  • 什么是wwwroot?本文使用C:\Websites\My Asp.Net Core 文件夹。如果你不描述做了什么 - 你很不可能得到帮助......

标签: c# asp.net-core-webapi


【解决方案1】:

我在服务器上浏览后,http://127.0.0.1:5100/swagger/index.html,页面显示没有找到网页。

如果您查看Startup.csConfigure 方法的代码,您会发现该应用仅在Development 环境下提供Swagger UI。

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAppi v1"));
}

如果您想在 IIS 上发布 Swagger UI 后在 Production 环境中提供服务,您可以修改如下代码,然后将其重新发布到 IIS。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAppi v1"));

    //...

另外,如果您的 IIS 站点仅用于测试目的,为了快速解决问题并让您的站点按预期显示 Swagger UI,您可以尝试为您的站点添加如下环境变量。

【讨论】:

  • 非常感谢!这是我第一次使用 .net core 创建 web api。真的很感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
相关资源
最近更新 更多