Сообщение об ошибке 500 в моем apim Azure при попытке подключиться к RavenDB

#c# #asp.net-core #ravendb #azure-keyvault #azure-api-management

Вопрос:

Локально мой api работает нормально, но в Azure apim, когда я добавляю эти строки в контроллер (для доступа к моему RavenDB), я получаю внутреннюю ошибку сервера 500.

Ввод кода сеанса IAsyncDocumentSession

Http-Ответ

Вот конфигурация запуска:

конфигурация запуска

я также использую AzureKeyVault, чтобы получить сертификат для доступа к моему RavenDB.

Хранилище документов с использованием AzureKeyVault

Я добавил IP-адрес apim в разрешенные IP-адреса облака RavenDB, но безуспешно.

Вопрос в том, как я могу это исправить ?

Не стесняйтесь спрашивать, если вам нужна дополнительная информация.

РЕДАКТИРОВАТЬ Недавно у меня была дополнительная информация об ошибке 500 Ошибка 500 с SSL

Проблема решена, ожидая, пока @TinyWang напишет свой ответ вместо комментария. Вы можете найти вещи, которые работали на меня, в комментариях.

Комментарии:

1. Apim работает как ворота перед вашим api, поэтому IP-адрес apim не нужно добавлять в список разрешенных баз данных, кроме IP-адреса сервера, на котором вы развернули свой проект.

2. @TinyWang Thx для вашего ответа, мой проект представляет собой простой API (нет интерфейса), я опубликовал его в Azure (Служба приложений apim) , а RavenDB находится в облаке RavenDB.

3. Привет @Adrioca, спасибо за ваш ответ и не могли бы вы позвонить в свой api напрямую, не используя URL-адрес apim? Я имею в виду, если ваш api domain/api/users (вы сказали, что локально он в порядке), и после развертывания в azure URL-адрес превратится в sitename.azurewebsites.net/api/users, не могли бы вы, пожалуйста, перейти по этой ссылке, чтобы проверить, поступает ли 500 из вашей программы, но не apim? (Я боюсь, что это действительно происходит из вашей программы). И если это действительно проблема с внутренним кодом, нам нужно проверить регистратор, чтобы увидеть, где исключение. И, может быть, это действительно не удалось подключить базу данных, тогда давайте проверим, разрешено ли веб-приложение бд

4. См. Этот раздел для получения IP-адреса веб-приложения azure.

5. Я видел это The system can not find the file specified на скриншоте и здесь, я боюсь, что папка c:/user/xxxxx — это папка на локальном компьютере, но PLS обратите внимание после публикации вашего приложения в Azure, окружающая среда изменилась, и вы можете использовать куду, чтобы увидеть серверной среде ( https://your-site-name.scm.azurewebsites.net в навигации -> консоль отладки-> командная строка увидеть структуру папок). А затем вы можете настроить папку в своем коде.

Ответ №1:

Чтобы подвести итоги здесь и закончить это дело:

Согласно сообщению об ошибке, мы видим, что оно связано с маршрутом ошибок на сервере, но не с чем-то неправильным в azure apim. Мы можем использовать kudu для веб-приложения azure для проверки структуры папок сервера.

И, как сказал оп в комментарии выше, он решил загрузить сертификат на сервер.

Я загрузил сертификат в службу приложений Azure, используя kudu в C:homesitewwwroot> — Наконец, я изменил X509KeyStorageFlags с DefaultKeySet на MachineKeySet