Произошла ошибка веб-службы IIS - может быть связана с CORS - PullRequest
0 голосов
/ 27 мая 2020

У меня возникла странная проблема с тем, что я считаю связанным с IIS. Я разработал веб-API ASP. NET, работающий на DOTNET4.6. Этот API получает в своем теле полезную нагрузку json при вызове из другой системы. Затем он берет эту информацию и вызывает API GitHub на api.github.com с личным токеном доступа, чтобы создать для меня репозиторий.

Схема, приведенная выше, может не иметь отношения к ситуации, но вот проблема :

Проблема

При работе в режиме отладки этот API работает должным образом. Я могу выполнить POST-запрос почтальона, и все операции будут выполнены, как ожидалось, и я могу увидеть свое новое репо на GitHub.

При публикации службы и перемещении ее на один из наших серверов IIS. Вещь становится беспорядочной и надоедливой. Выполнение запроса POST приводит к ответу json {"message": "Произошла ошибка"}. Я точно знаю, что это происходит еще до того, как мой код будет достигнут, и это не одно из моих сообщений об обработке ошибок. Ответом является внутренняя ошибка сервера 500.

Что я пробовал

Я попытался исследовать источник проблемы, выполняя запрос разными способами. Журналы IIS мне ничего не дают.

Я выполнил следующий запрос в Chrome консоли разработчика:

var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({"timestamp":1589452400243,"webhookEvent":"item_created"});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://myiisserver/Integration/api/GitRepoSetu?clientid=aclientid&clientsecret=aclientsecret", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

к сожалению, это дает тот же результат, и никакой полезной информации нет. только на внутреннем сервере 500 и появляется сообщение «Произошла ошибка»

может ли кто-нибудь указать мне в правильном направлении, где я могу найти указание на то, что на самом деле происходит? Раньше у меня были проблемы с политикой CORS, и я пытался решить их, установив пакет CORS NuGet и настроив его на моем контроллере. Ошибка cors была выдана только в консоли chrome dev, а не в почтальоне. Я с трудом пытаюсь понять это.

...