Asp.net core 将带有Swagger UI的ASP.NET核心Web API部署到承载多个其他网站的Windows Server 2012(IIS 8)

Asp.net core 将带有Swagger UI的ASP.NET核心Web API部署到承载多个其他网站的Windows Server 2012(IIS 8),asp.net-core,deployment,swagger,iis-8,windows-server-2012,Asp.net Core,Deployment,Swagger,Iis 8,Windows Server 2012,我用ASP.NET Core 2.2开发了一个简单的Web API,它有一个招摇过市的UI(通过Swashback)。我在这里称之为“我的api” 我正在使用Windows 7上的Visual Studio 2017进行开发 这个web应用程序在开发时(当然)在我的本地主机上运行良好 此URL将打开swagger UI http://localhost:5000/api/[endpoints] http://www.server-domain.com/my_api_folder/api/[en

我用ASP.NET Core 2.2开发了一个简单的Web API,它有一个招摇过市的UI(通过Swashback)。我在这里称之为“我的api”

我正在使用Windows 7上的Visual Studio 2017进行开发

这个web应用程序在开发时(当然)在我的本地主机上运行良好

此URL将打开swagger UI

http://localhost:5000/api/[endpoints]
http://www.server-domain.com/my_api_folder/api/[endpoints]
这些URL端点将从数据库中检索各种资源


我想要实现的目标(不确定这是否可行):

我想将此web应用程序部署到运行IIS 8的Windows Server 2012,该服务器已经运行了其他三个相对静态的网站

我想将构建部署在此服务器上“wwwroot”中的文件夹(“my_api_文件夹”)中。然后:

http://www.server-domain.com/my_api_folder/swagger
将打开大摇大摆的用户界面

http://localhost:5000/api/[endpoints]
http://www.server-domain.com/my_api_folder/api/[endpoints]
将调用我的各种API端点


我所做的:

我使用VS 2017构建(发布)web应用程序,并将其保存到文件夹中

我将其构建为一个自包含部署(SCD),希望它更易于部署

我使用的构建目标(RID)是win-x64

构建过程完成后,我在“publish”文件夹中生成了一个可执行文件(“my_api.exe”)、几个DLL和其他资产/配置文件

我可以通过双击在本地计算机上运行此可执行文件。它将在localhost:5000上进行监听,并且所有这些都可以正常工作

然后我将所有构建文件部署(复制并粘贴)到服务器上的“my_api_folder”文件夹中


我现在面临的问题:

部署之后,两者

http://www.server-domain.com/my_api_folder/swagger

将返回500个内部服务器错误

然后我尝试双击服务器上的可执行文件,它将运行。(它显示在本地主机上侦听:5000)

但是,我无法在服务器上打开(或)或调用API。(在服务器的IE浏览器上找不到404。)

我也无法从服务器外部访问这些路由。但这次它挂起了很长时间,最终显示网关没有响应

但是

在我手动运行可执行文件后,显示“my_api.exe”确实在端口5000上侦听


我的描述可能无处不在。我觉得我缺少一些关键的知识,使这项工作在这里

请告知我应该如何调试这个

原因可能是什么

如果您需要任何其他信息,请让我也知道


谢谢。

我认为人们可以遵循此文档并根据自己的情况进行调整:

我认为一个人可以遵循此文档并适应自己的情况:

netstat -a -o -n