Настройка основного веб-приложения .net и вебапи на IIS - PullRequest
0 голосов
/ 29 мая 2019

Я в процессе создания своего веб-приложения (WebUI) и webapi (WebApi).В ASP.Net я всегда работал таким образом, создавая веб-приложение на IIS с путем к папке с отладкой результата, а WebApi как веб-приложение внутри веб-сайта.В Visual Studio прикрепите процесс w3wp.exe и я смог отладить код.Я хотел бы добиться того же эффекта сейчас.

Теперь у меня есть WebUI (веб-приложение .net Core 2.2) и WebApi (web api .net Core 2.2).В IIS добавьте новый сайт (путь к папке отладки WebUi) и внутри создайте приложение (путь к папке отладки WebApi)

моя маршрутизация

[Route("api/v1/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return new string[] { "value1", "value2" };
        }
    }

Желаемый эффект:

http://localhost:8100/ - веб-сайт

http://localhost:8100/webapi/api/v1/values - конечная точка webapi

веб-сайт работает, но WebApi нет.Мне нужно использовать сайт и API одновременно.Когда я запускаю Web Api в Visual Studio, веб-API работает правильно.Любой совет или лучшая идея для отладки в то же время?Все отлично работает, когда приложение веб-API в IIS Navigate для публикации WebAPI.

1 Ответ

0 голосов
/ 29 мая 2019

Попробуйте это в RouteConfig.cs.

routes.MapRoute(
    name: "Home",
    url: "",
    defaults: new { controller = "Home", action = "Index" }
);

И для API-маршрутов в WebAPiConfig.cs

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

С другой стороны, вы можете определить маршрут непосредственно в Api Controller, как это.

[ApiController]
public class ValuesController : ControllerBase
{
    // GET api/values
    [HttpGet]
    [Route("webapi/api/v1/values")]
    public ActionResult<IEnumerable<string>> Get()
    {
        return new string[] { "value1", "value2" };
    }
}

Удачи.

...