Я не могу установить соединение между моим угловым интерфейсом и моим C # бэкэндом.Что является причиной этого? - PullRequest
1 голос
/ 24 мая 2019

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

Насколько я знаю, проблемы не может быть, потому что мой сервер не работает должным образом. Это потому, что мое приложение работает с Swagger, и у Swagger нет заметных проблем с возвратом кода, который был проанализирован в JSON.

Таким образом, это должен быть мой фронтенд. Однако это также маловероятно, поскольку работает хорошо, пока не подключится к бэкэнду. (В моем коде это будет до строки 64 класса authentication.service.ts для проверки имени пользователя и до строки 40 аутентификации.service.ts для регистрации пользователя).

Я уже попросил мой антивирус Norton прекратить что-либо делать, чтобы посмотреть, не работает ли мое приложение из-за моего антивируса, но оказывается, что мой антивирус не делал ничего, чтобы помешать моему веб-интерфейсу подключиться к моему бэкэнду.

Если какой-то код работает неправильно, это должен быть код в этом методе:

checkUserNameAvailability = (username: string): Observable<boolean> => {
    //    console.log(username);
    return this.http.get<boolean>(
      `${environment.apiUrl}/User/checkusername`,
      {
        params: { username }
      }
    ).pipe(catchError(err => {
      console.error(err);
      return of(null);
    }))
  }

Это код в authentication.service.ts от строки 62 до строки 73.

Я свяжусь с моими репозиториями на github ниже:

Угловой интерфейс: https://github.com/GuylianBollon/AngularFrontendWebIV Бэкэнд C #: https://github.com/GuylianBollon/CbackendWebIV

Вот еще одна вещь, которую я нашел: После того, как я подключил свой угловой интерфейс к своему C # бэкенду и сразу после него проверил соединение в командной строке, генерируется следующее. (Примечание: 44392 - это порт SSL моего бэкэнда C #).

C:\Users\Hp>netstat -a -n | findstr 44392
  TCP    0.0.0.0:44392          0.0.0.0:0              LISTENING
  TCP    [::]:44392             [::]:0                 LISTENING
  TCP    [::1]:44392            [::1]:53942            ESTABLISHED
  TCP    [::1]:53942            [::1]:44392            ESTABLISHED

После того, как я подожду около 1 минуты, будет сгенерировано следующее:

C:\Users\Hp>netstat -a -n | findstr 44392
  TCP    0.0.0.0:44392          0.0.0.0:0              LISTENING
  TCP    [::]:44392             [::]:0                 LISTENING
  TCP    [::1]:53942            [::1]:44392            TIME_WAIT

Не уверен, нормально это или нет, но я подумал, что это интересно.

Вот также json моего файла proxy.conf.json:

{
  "/api": {
    "target": {
      "host": "localhost",
      "protocol": "https",
      "port": 44392
    },
    "changeOrigin": true,
    "secure": false,
    "logLevel": "warn"
  }
}

Когда я открываю браузер после подключения моего углового интерфейса к своему бэкэнду C #, напишите что-нибудь в поле имени пользователя и подождите 2 минуты, будет сгенерировано следующее:

authentication.service.ts: 70 1. HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: «Unknown Error», url: «/ api / User / checkusername», ok: false,…} 1. error: ProgressEvent {isTrusted: true, lengthComputable: false, загружено: 0, всего: 0, тип: «error»,…} 2. заголовки: HttpHeaders {normalizedNames: Map (0), lazyUpdate: null, заголовки: Map (0)} 3. сообщение: «Http-сообщение об ошибке для / api / User / checkusername: 0 Unknown Error» 4. название: "HttpErrorResponse" 5. хорошо: ложь 6. статус: 0 7. statusText: «Неизвестная ошибка» 8. url: "/ api / User / checkusername" 9. proto : HttpResponseBase

апите / User / checkusername имени пользователя = а: 1 Не удалось загрузить ресурс: net :: ERR_EMPTY_RESPONSE

1 Ответ

0 голосов
/ 12 июля 2019

В вашем файле конфигурации прокси есть опечатка, исправленная версия:

{
  "/api": {
    "target": {
      "host": "localhost",
      "protocol": "https:",
      "port": 44392
    },
    "changeOrigin": true,
    "secure": false,
    "logLevel": "warn"
  }
}

Обратите внимание на двоеточие (:) после https:, которое отсутствует в вашей версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...