ASP.NET Web Api построен из / с консоли - PullRequest
0 голосов
/ 08 октября 2018

Я хочу иметь возможность использовать ASP.Net Web Api, который открывается и выводится на Console.

. Причина в том, что я инициализирую множество элементов и объектов перед запуском Web Api.Затем я регистрирую эти объекты с помощью внедрения зависимостей для доступа к ним в моем ApiController.

. Когда я запускаю Web Api, мне нужно открыть консоль, чтобы я мог видеть, как происходит инициализация и как долго это происходит.занимает.

Я знаю, что можно отправлять журналы из Web Api на консоль отладки, но это не то, что мне нужно.

Может быть, есть способ запустить консольный проект ивключить в него фреймворк Web Api?

1 Ответ

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

OWIN way:

  1. Создание консольного приложения
  2. Добавление пакета «Microsoft.AspNet.WebApi.OwinSelfHost» и его зависимостей в проект
  3. Добавьте файл Startup.cs со следующим содержимым:

    using Owin;
    using System.Web.Http;
    
    namespace YourConsoleAppProjectNamespace {
        public class Startup {
            public void Configuration(IAppBuilder appBuilder) {
                HttpConfiguration config = new HttpConfiguration();
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
                appBuilder.UseWebApi(config);
            }
        }
    }
    
  4. Измените Main () * вашего проекта

    using Microsoft.Owin.Hosting;
    using System;
    
    namespace YourConsoleAppProjectNamespace {
        class Program {
            static void Main(string[] args) {
                WebApp.Start<Startup>("http://localhost:3333/");
                Console.ReadLine(); // block main thread
            }
        }
    }
    
  5. Определите контроллерс методом действия и тестом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...