несколько экземпляров и чванство - PullRequest
0 голосов
/ 05 мая 2018

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

var option = new StartOptions();
option.Urls.Add("http://localhost:9000/Foo");
var app = WebApp.Start(option, Startup)

var option2 = new StartOptions();
option2.Urls.Add("http://localhost:9000/Bar");
var app2 = WebApp.Start(option, Startup);

private static void Startup(IAppBuilder appBuilder)
{
    var configuration = new HttpConfiguration();
    configuration.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
    configuration.Formatters.Clear();
    configuration.Formatters.Add(new JsonMediaTypeFormatter());
    appBuilder.UseWebApi(configuration);
    configuration.EnableSwagger(c => c.SingleApiVersion("v1", "A title for your API")).EnableSwaggerUi();
}

Но когда я пытаюсь открыть следующий URL: http://localhost:9000/Foo/swagger/ui/index#/

Я вижу это сообщение:

Не могу прочитать чванство JSON из http://localhost:9000/swagger/docs/v1

1 Ответ

0 голосов
/ 06 мая 2018

Swagger принимает символы до тех пор, пока не увидит сначала / и примет его в качестве адреса своего хоста. Вы должны использовать RootUrl собственность. Ваш адрес хоста недопустим для конфигурации чванства по умолчанию.

configuration.EnableSwagger(c =>
                            {
                                c.SingleApiVersion("v1", "A title for your API");
                                // you should use this line
                                c.RootUrl(req=> "http://localhost:9000/Foo");
                            }).EnableSwaggerUi();

В вашем случае вам нужно передать параметр в класс Startup, для которого URL используется для RootUrl, или вы можете разделить класс Startup для каждого экземпляра приложения.

Другое решение: вы можете использовать baseUrl http://localhost:9000/ и http://localhost:9001/ вместо http://localhost:9000/Foo http://localhost:9000/Bar. В этом случае вам не нужно ничего менять.

...