'System.Net.Http.Formatting.IContentNegotiator' не был зарегистрирован - PullRequest
0 голосов
/ 26 сентября 2018

Я обычно Java-разработчик.Сегодня я решил, что хочу научиться создавать безсерверное веб-приложение в Azure с помощью инструментов Microsoft.

Поскольку я пользователь Mac, я установил версию Visual Studio для Mac.

Далее,Я создал новое решение для функций и выбрал шаблон «Триггер Http с параметрами».

Затем я нажал кнопку «Выполнить» и увидел, что она открыла окно консоли с URL-адресом, который я мог использовать для доступа к службе.

Но когда я нажал на этот URL с помощью curl из другого окна, я получил это:

System.Private.CoreLib: Исключительная ситуация при выполнении функции: Demo.Autofac: запрошенная служба 'System.Net.Http.Formatting.IContentNegotiator' не была зарегистрирована.Чтобы избежать этого исключения, либо зарегистрируйте компонент для предоставления службы, проверьте регистрацию службы с помощью IsRegistered (), либо используйте метод ResolveOptional () для разрешения необязательной зависимости.

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

Frank

1 Ответ

0 голосов
/ 18 октября 2018

Я считаю, что конкретная проблема связана с вызовом метода расширения CreateResponse () для объекта запроса.В шаблоне по умолчанию вы должны увидеть что-то вроде этого в конце метода run ();

return req.CreateResponse(HttpStatusCode.OK);

Обходной путь - явное создание экземпляра и заполнение объекта HttpResponseMessage.

Что-то вроде этого работаетдля меня, после обычной операции вставки CRUD;

// Save the entity and return a reference 
var blobReference = await SaveBlob(blob);
// Create an HttpContent object to package the reference
var blobRefContent = new ObjectContent<BlobReference>(blobReference, (MediaTypeFormatter)MediaTypeFormatter.GetDefaultValueForType(typeof(BlobReference)));
// Create a response containing the reference and the original request, as well as a successful return code
var response = new HttpResponseMessage(HttpStatusCode.Created) { Content = blobRefContent, RequestMessage = req };
// Return the response
return response; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...