C# Web应用程序可以';发布后找不到我的API

C# Web应用程序可以';发布后找不到我的API,c#,asp.net,iis,asp.net-web-api,asp.net-core,C#,Asp.net,Iis,Asp.net Web Api,Asp.net Core,这是我第一个使用ASP.NETCore的项目,我遇到了一些问题,这些问题我基本上是自己能够解决的。但是,现在我遇到了一个问题,在服务器上发布后,我的web应用程序找不到我的API 首先,重要的是要知道我的项目中有两个应用程序 在API中,我有几个默认路由的控制器 ie:[Route(“api/Address”)]当我通过Visual Studio启动Web应用程序时,一切运行正常,没有问题。 现在我正在尝试发布应用程序 所以我发布了(Localy)应用程序并将其复制粘贴到inetpub/www

这是我第一个使用ASP.NETCore的项目,我遇到了一些问题,这些问题我基本上是自己能够解决的。但是,现在我遇到了一个问题,在服务器上发布后,我的web应用程序找不到我的API

首先,重要的是要知道我的项目中有两个应用程序

在API中,我有几个默认路由的控制器 ie:
[Route(“api/Address”)]
当我通过Visual Studio启动Web应用程序时,一切运行正常,没有问题。 现在我正在尝试发布应用程序

所以我发布了(Localy)应用程序并将其复制粘贴到inetpub/wwwroot/somefolder中。检查了文件夹结构,我可以清楚地看到里面有一个BetonApi.dll。这很好。因为我确实想将API发布为一个独立的web API。我想在表单中使用它作为.dll,这非常有效。我可以在我的应用程序中看到网格,并且可以从BetonAPI中正确地检索数据

在服务器上发布时,但我得到一个错误,即未找到API。我曾经尝试过使用URL,因为这是我想到的第一件事,我检查了BetonAPI.dll是否在发布文件夹中。我尝试了一些谷歌搜索,但我找不到类似的东西

长话短说:

  • 当通过VS启动时,应用程序确实从API获取数据

  • 应用程序在本地发布后从API获取数据

  • 在服务器上发布后,应用程序不会从API获取数据


您是在services@UdaraKasun嗯,没有,但我也没有在我的本地机器上这样做。“在服务器上发布时”?请注意,如果您硬编码
http://localhost
在您的web应用程序中,在任何浏览器(在任何机器上)中,它都会尝试在localhost中定位web API,这仅在浏览器位于服务器本身时有效。@LexLi不,我没有在我的应用程序或API中硬编码localhost。我正在从startup.cs获取基本url。我也在服务器的浏览器上运行此操作。您可以使用FRT查看是什么提供了404,如果手头没有更多数据,原因应该很清楚。