#amazon-elastic-beanstalk #content-type
Вопрос:
Я интегрировал свое приложение .net-core MVC со сторонней системой для обратного вызова. Когда я размещаю вышеупомянутое приложение в Azure, мой API работает должным образом, но когда я размещаю его в AWS elastic beanstalk, он не работает. В Azure ввод для API осуществляется в виде объекта, но в случае AWS, как показано ниже, ниже приведен запрос, который я получаю от третьей стороны на мой API обратного вызова.
------------------------------e2bdba1d3cf0 Content-Disposition: form-data; name="json" {"Transaction":{"Guid":"[Fax GUID]","To":"14154847140","From":"14154847140","IsInbound":false,"IsDraft":false,"TypeCode":"F","StatusCode":"S","ErrorCode":null,"CreatedAt":"1505933982","UpdatedAt":"1505934022","Uri":"/v1/Accounts/[Your Account GUID]/Transmissions/[Fax GUID]","NumPagesBilled":1}} ------------------------------e2bdba1d3cf0--
Мой код API
[HttpPost] [Route("CallBack")] public string CallBack() { try { eSignService eSignService = new eSignService(); dynamic json = new StreamReader(HttpContext.Request.Body).ReadToEndAsync().GetAwaiter().GetResult(); if (json != null) { //logic to save the file } else { _logger.LogInformation("No Data Found"); } } catch (Exception ex) { _logger.LogInformation("Error : " ex); } string result = "Hello API Event Received"; return result; }
Комментарии:
1. EC2 или Azure не будут иметь никакого значения для кода вашего приложения — в чем заключается реальная проблема?
2. Я пытаюсь прочитать данные из тела, используя строку ниже динамический json = новый StreamReader(HttpContext.Request. Тело). ReadToEndAsync(). GetAwaiter().GetResult(); а затем сериализуйте его в объект JSON JsonConvert. Десериализуетобъект(HttpContext.Сеанс. getString(json), где я получаю сообщение об ошибке ниже Microsoft. CSharp.привязка времени выполнения. Исключение RuntimeBinderException: Наилучшее совпадение перегруженного метода для ‘string.this[int]’ содержит некоторые недопустимые аргументы в CallSite. Цель(Закрытие , Узел вызова , Объект , Строка )
3. в azure вывод нижеприведенной строки поступает как объект, но в AWS он поступает как строка динамического json = новый потоковый читатель(HttpContext.Request. Тело). ReadToEndAsync(). GetAwaiter().GetResult();
4.
dynamic json
— ну да, это так, вы указываете, чтобы у него былdynamic
тип5. делайте
string json
— для этого нет причин быть динамичным