Невозможно использовать IApplicationBuilder.Map для HTTP-запросов. - PullRequest
0 голосов
/ 15 ноября 2018

Здравствуйте, я пытаюсь разветвить свою таблицу маршрутизации, чтобы мои запросы отправлялись либо в ASP NET Web Api Controller, либо в Middleware, который обрабатывает Websockets.

. Я не понимаю, почему маршрут httpHTTP маршрут работает, если я использую app.UseMvc() вместо x.UseMvc() (локальная область действия IApplicationBuilder).

Программа

 public static void Main(string[] args) {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
            var builder = new WebHostBuilder();
            builder.UseStartup<Startup>();
            var url = Address.Default.ToUrl(); //    http://0.0.0.0:9300 -tried with ending '/' too
            Debug.WriteLine(url); 
            builder.UseKestrel().UseUrls(url);
            return builder;

        } 

Запуск

public class Startup {

        public Startup(IConfiguration configuration) {
            Configuration = configuration;
        }
        public void ConfigureServices(IServiceCollection services) {
            services.AddOptions();
            services.AddMvc();
            services.AddSingleton<RealtimeService>();


        }

        public IConfiguration Configuration;

        public void Configure(IApplicationBuilder app) {

            app.UseCors(x => { x.AllowAnyHeader(); x.AllowAnyOrigin(); x.AllowAnyMethod(); });

            app.Map("/api", (x) => {
                Debug.WriteLine($"api:{DateTime.Now.ToShortTimeString()}");
                x.UseMvc(); //passes through if i use  'app.UseMvc'
            });
            app.Map("/ws", (x) => {
                Debug.WriteLine($"ws:{DateTime.Now.ToShortTimeString()}");
                x.UseMiddleware<RealTimeWare>();  // works !!
            });


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