2017-01-05 6 views
1

Как мне запустить запуск службы, созданной поверх среды выполнения службы, только запустив локально, выполнив файл *.exe?Как запустить служебную ткань exe локально

В настоящее время это просто исключение, тогда приложение прекращается.

Я хочу, чтобы иметь возможность развернуть службу в изоляции, чтобы я мог протестировать конец службы до конца, прежде чем создавать пакет услуг, прежде чем развертывать его как часть приложения. Ранее я делал это с помощью TopShelf и Web Jobs, но, похоже, он не работает с Service Fabric, хотя он просто построен поверх консольного приложения.

+0

Скорее всего, вы не можете * запустить * это, как будто вы не можете просто запустить веб-сайт * asp.net *. Он должен быть размещен, и я не знаю о локализованном узле службы Fabric. –

+0

Ну, все новые вещи, такие как .netcore asp.net, могут запускаться только локально самостоятельно, вам нечего что-то поддерживать. –

+0

На самом деле он не может, вы все равно должны * host * его в чем-то ... как EXE или что-то в этом роде. Вы не можете просто * создать exe, который запускает MVC изначально * [вам нужно настроить exe на host Mvc и настроить MVC с корневым каталогом] (https://weblog.west-wind.com/posts/2016/ Jun/29/First-Steps-Exploring-NET-Core-и-ASPNET-Core) и т. Д. И т. Д., Который все еще размещается .. это просто не в IIS. –

ответ

1

Вам нужна локальная ткань кластераслужбы для отладки Service Fabric приложений, но сначала вам нужно установить The Azure Service Fabric SDK, проверить эту article, чтобы помочь вам сделать это.

И затем разверните приложение в локальном кластере, это может быть полезно для использования этим article Microsoft.

+0

Нет ли способа сделать это без развертывания его в кластере для запуска? Обычно я просто разворачиваю exe в своих тестовых настройках, затем тестирую приложение от конца до конца, а затем снова разорву его. Кажется, немного переборщить, чтобы развернуть все приложение каждый раз? –

+1

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

+0

@KevinSmith Кажется, это единственный способ, потому что все документы Microsoft ссылаются на его использование; см. эту статью [https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-debugging-your-application), например –

0

Вы можете добавить обычное консольное приложение к своему решению, ссылаясь на проект (ы) службы. Затем вы можете создать экземпляр своей службы, используя mocks для контекста службы и менеджера состояний.

Here's пакет, который поможет с насмешками.

Here's способ использования.

Его использование не ограничивается сценарием с единичным тестированием. Убедитесь, что вы выполняете инъекцию зависимостей для удаленного обслуживания (используйте IServiceProxyFactory/IActorProxyFactory) вместо использования ServiceProxy.Create.

Если вы используете FabricClient, вам также придется делать инъекции зависимостей.

+0

действительно не хотят издеваться над каким-либо кодом, вы хотите запустить сквозной тест на службу, поскольку он будет находиться в режиме реального времени. –