2016-02-17 2 views
0

Я создал простой Actful Actor и веб-API (самостоятельно размещен) и развернул его в Azure. Он работал, и я могу просматривать узлы в Проводнике Fabric.Service Fabric, размещенный веб-API

Azure дает мне url, но когда я добавляю/api/values ​​в конец (который работает нормально локально), он загружает файл с именем values, и я не могу его открыть, так как это двоичный файл.

Я хочу вызвать веб-api из приложения Xamarin (т. Е. Обычный вызов api для отдыха), но если я не могу позвонить ему через браузер, я немного застрял.

ответ

1

Обнаружили, что не хватает.

https://azure.microsoft.com/en-us/documentation/articles/service-fabric-cluster-creation-via-portal/

Эта ссылка здесь идет путем создания приложения Service Fabric на Azure и, в частности, в поле «Применение входных конечных точек» необходимо иметь порт, который вы хотите использовать. Для образцов они в основном являются портами 80 или 8081.

Предполагается, что это будет способ добавить эти порты впоследствии, которые я попробовал (а также инженер поддержки Microsoft), и он, похоже, не работает. Предполагается, что вы можете добавить эти порты в Балансировщик нагрузки, связанный с приложением Service Fabric.

Я воссоздал приложение Service Fabric, как и раньше, но на этот раз заполнил порты, которые я хочу использовать в разделе «Тип узла», и теперь я могу воспользоваться службами webapi, которые я развернул. Это поле может быть пустым, что я сделал в первый раз, и поэтому у меня были проблемы.

0

Не имеет отношения к Service Fabric, это именно то, как вы настраиваете заголовки ответов HTTP в веб-API. Рекомендовать пометить это asp.net или asp.net-web-api для более тщательного ответа.

+0

Если он работает локально (то есть http: \\ localhost: 30003 \ api \ values), то, используя лазурный fqn и правильный порт, также должен работать, я бы ожидал. Может иметь неправильный порт, Azure перечисляет несколько для сервисной ткани, но попробовал их все не помогло. Должен быть способ вызова webapi, размещенного в узле, или не было бы никакого смысла. –

+0

Тот факт, что вы получили запрос на загрузку файла с именем values, заставляет меня поверить, что вы действительно успешно ударили по конечной точке, но ваш браузер не правильно интерпретировал заголовок типа контента ответа, как предлагает Vas. Чтобы подтвердить: использовали ли вы один и тот же браузер для тестирования локально и в Azure? IE исторически интерпретировал application/json как загружаемый контент, а не предоставлял inline. –

+0

Да, хром для обоих. Хороший вопрос о загрузке файла. С тех пор я попробовал приложение webapi в службе без состояния, а также попробовал обычный лазурный webapi. Первая дала внутреннюю ошибку 500, как и позже. Пока не удается получить доступ к журналам, чтобы устранить неполадки. Следующим шагом является развертывание одного из примеров приложений и выяснение, работает ли это. –

0

Учебники и технические ресурсы около Azure Service Fabric Stateless Web API имеют тенденцию быть слегка разрозненными, учитывая, что платформа и ресурсы по-прежнему довольно незрелые.

This Stateless Web API tutorial, на момент написания, очень эффективно.

В предпосылке для урока:

  1. Обновления Visual Studio до последней версии (расширения и обновления)
  2. Обновление Service Fabric SDK до последней версии (Web Platform Installer)
  3. Явных указать атрибут EndPoint Port (определенно в ServiceManifest.xml), когда setting up your Azure Service Fabric ClusterNode Type

После этих шагов будет успешно разрешено развертывание как локальных, так и удаленных кластеров и выведет конечные точки веб-API для потребления.

4

Я бы прокомментировал это на Stephen's answer, но мне не хватает достаточной репутации. Чтобы добавить пользовательский порт для балансировки нагрузки после был создан кластер ткани обслуживания вы можете (в новой Azure портала):

  • Перейдите к балансиру ресурсу нагрузки для вашей службы ткани кластера.
  • В разделе «Настройки» выберите «Правила балансировки нагрузки».
    • Это будет иметь как минимум два правила, больше, если вы установили пользовательские правила во время настройки кластера.
  • Добавить новое правило.
    • Дайте ему имя
    • «Порт» является внешний порт, который вы хотели бы попасть.
    • «BackendPort» - это порт, который ваша служба настроена для прослушивания.
    • Значения по умолчанию для других настроек работают в крайнем случае.

Примечание, если у вас есть несколько портов, чтобы позволить, они должны иметь собственные правила.

Я знаю, что вышеупомянутое работало в моем проекте песочницы «hello world».

Я сам изучаю кривую обучения тканям, поэтому я не могу комментировать авторитет в других настройках.

+0

Спасибо за это. – SB2055

Смежные вопросы