У нас есть два веб-сайта на IIS для angular_client и web_api, пакет хостинга установлен, и разрешение для таких пользователей, как IUSR, Сеть, Сетевая служба и Все, уже предоставлено.
Навигация докаждый сайт работает отдельно, т.е. в API, вызов http://localhost:51975/api/user, приводит к списку всех пользователей.
Проблема в том, что на странице входа в Angular не удается связаться с API для аутентификации пользователей:
OPTIONS http://localhost:51975/api/user/authenticate net::ERR_CONNECTION_REFUSED
Я попытался изменить IP-адрес, связанный с API, на статический, то есть 10.1.xy, а затем приказал angular вместо http://10.1.x.y:51975/api/user/authenticate.
В API, который я включил, отправлял журнал в браузер, а также в папку журналов, отображается только один журнал:
Hosting environment: Production
Content root path: C:\inetpub\wwwroot\api
Now listening on: http://127.0.0.1:39834
Application started. Press Ctrl+C to shut down.
Application is shutting down...
Почему он прослушивает другой порт, а не связанный 51975?
Почему отказано соединение от Angular к API?
Почему приложение закрывается?
Это правильный подход для этого?
ОБНОВЛЕНИЕ 1
На сервере ТОЛЬКО приложение работает нормально, со следующими конфигурациями:
Угловое на 10.xyz:4200,
API 10.xyz:51975,
Проблема в том, что когда я пытаюсь использовать публичный ip или имя хоста, я все ещеможет получить доступ только к угловому, но не к веб-API, я попытался назначить имя хоста для API, и он еще не работает!
ОБНОВЛЕНИЕ 2
Iтакже разрешил оба порта 4200 и 51975 в моем доменном имени хоста.
ОБНОВЛЕНИЕ 3
Я размещаю веб-API на IIS, API и Angularна том же сервере, но на разных веб-сайтах.
Я удалил утверждение о CORS исправлено, потому что у меня все еще есть предупреждение на консоли браузера, вот ошибка:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://{public IP}:51975/api/user/authenticate. (Reason: CORS request did not succeed).[Learn More]
Object { headers: {…}, status: 0, statusText: "Unknown Error", url: "http://{public IP}:51975/api/user/authenticate", ok: false, name: "HttpErrorResponse",
message: "Http failure response for http://{public IP}:51975/api/user/authenticate: 0 Unknown Error", error: error }
OPTIONS Http failure response for http://{public IP}:51975/api/user/authenticate net::ERR_CONNECTION_TIMED_OUT
О CORS,вот моя конфигурация, она работает локально:
//In ConfigureServices method
services.AddCors();
//In Configure method
app.UseCors(options => options.WithOrigins("http://localhost:4200/").AllowAnyMethod().AllowAnyHeader());
Спасибо