Я работаю над веб-приложением с Angular 7 в качестве внешнего интерфейса и Net Core 3.0 в качестве внутреннего. Все отлично работает в режиме разработки, и я могу вызывать URI из внешнего интерфейса, напрямую из браузера, а также из Postman https://localhost: 5001 / api / controller / params
Для демонстрации я должен сделать релиз прямо сейчас. Из CLI и Visual Studio (Ma c) все выглядит нормально: папка сгенерирована с путем project / bin / Release / netcoreapp3.0 / publish / со всеми файлами .dll, web.config и др. c.
Однако при публикации в IIS, если я звоню https://appname.myserver.com/api/controller/params или http, браузер выдает ошибку 404. Если я позвоню http://appname.myserver.com/, я получу синий экран IIS с приветственным сообщением на разных языках.
Конфигурация IIS следовала инструкциям Microsoft, найденным здесь: https://docs.microsoft.com/en-us/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio
Я не публикую напрямую в IIS, поскольку у меня нет доступа к серверу, однако я удаленно контролировал процесс установки.
Я просматривал Интернет, и кто-то предложил чтобы сделать это в моем файле Program.cs:
namespace BackEnd
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseIISIntegration();
webBuilder.UseKestrel();
webBuilder.UseUrls("http://localhost:5000", "https://localhost:5001");
});
}
}
И web.config выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\BackEnd.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
Вот приложение Хостинг.config:
<site name="backendv2.hawk-poslatinoamericana.com.mx" id="10" serverAutoStart="true">
<application path="/" applicationPool="No Managed Code" enabledProtocols="http">
<virtualDirectory path="/" physicalPath="C:\HostingSpaces\poslatino\backendv2.hawk-poslatinoamericana.com.mx\wwwroot" />
</application>
<bindings>
<binding protocol="https" bindingInformation="169.57.1.244:5001:backendv2.hawk-poslatinoamericana.com.mx" sslFlags="0" />
<binding protocol="http" bindingInformation="169.57.1.244:5000:backendv2.hawk-poslatinoamericana.com.mx" />
<binding protocol="http" bindingInformation="169.57.1.244:5000:www.backendv2.hawk-poslatinoamericana.com.mx" />
<binding protocol="https" bindingInformation="169.57.1.244:5001:www.backendv2.hawk-poslatinoamericana.com.mx" sslFlags="0" />
</bindings>
<logFile directory="C:\HostingSpaces\poslatino\backendv2.hawk-poslatinoamericana.com.mx\logs" enabled="true" />
<traceFailedRequestsLogging enabled="true" directory="C:\inetpub\logs\FailedReqLogFiles" maxLogFiles="50" />
<limits connectionTimeout="00:04:00" />
</site>
Но пока не повезло, и у меня нет идей.