Внутреннее приложение .netcore недоступно с сайта angular - PullRequest
0 голосов
/ 21 февраля 2020

Я хочу создать приложение, которое размещено на машине Centos7 linux. Он будет иметь сайт в Angular как FrontEnd, который будет вызывать API, который является приложением .NetCore на том же сервере.

.NetCore работает в порту 21214, указанном так в программе .cs

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args).UseKestrel(
                (Action<KestrelServerOptions>)(
                options => options.Listen(IPAddress.Loopback, 21214)))
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>();

, а в файле etc / httpd / conf.d / CoreSite.conf он указан следующим образом.

<VirtualHost *:21214>
    ProxyPass / http://127.0.0.1:21215/
    ProxyPassReverse / http://127.0.0.1:21215/
    ErrorLog /etc/httpd/BackEnd-error.log
    CustomLog /etc/httpd/BackEnd-access.log common
</VirtualHost>

Сайт FrontEnd работает через порт 80, публикуется в папке httpd по умолчанию (/ var / www/html) и публикуется с помощью этой команды:

ng build --prod - base-href http: // publi c ip сервера

В файле etc / httpd / conf.d / FrontEndSite.conf он указан следующим образом: this

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ErrorDocument 404 /Error404.html
    ErrorLog /etc/httpd/FrontEnd-error.log
    CustomLog /etc/httpd/FrontEnd-access.log combined
</VirtualHost>

Когда я пытаюсь вызвать API из Front END, я получаю следующую ошибку net :: ERR_CONNECTION_REFUSED

Порты сайта BackEnd открываются на брандмауэре машина и оба сайта работают без ошибок.

РЕДАКТИРОВАТЬ Я настроил CORS на сайте BackEnd следующим образом

public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("AllowMyOrigin",
builder => builder.WithOrigins("http://mypublicip"));
});
}

и добавил [EnableCors ("AllowMyOrigin")] на контроллере и вызываемый метод

После этих изменений я получил тот же результат

EDIT 2

Я попытался запустить тот же вызов из FrontEnd, когда приложение BackEnd не запущено, и получил та же ошибка. Я сомневаюсь, что звонок вообще не приходит на BackEnd

...