我正在创建我的Web应用程序(WebUI)和Webapi(WebApi)。在ASP.Net中,我一直以这种方式工作,在IIS上创建Web应用程序,并生成调试文件夹的路径,而WebApi作为Webside内部的Web应用程序。在Visual Studio附加过程w3wp.exe中,我可以调试代码。我现在想达到同样的效果。
现在,我有了WebUI(Web应用程序.net Core 2.2)和WebApi(Web api .net Core 2.2)。在IIS中,添加新站点(WebUi Debug文件夹的路径),并在内部创建应用程序(WebApi Debug文件夹的路径)
我的路线
[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/webapi/api/v1/values-端点webapi
该网站有效,但WebApi无效。我需要同时使用site和api。当我在Visual Studio中运行Web Api时,Web Api工作正常。有什么建议或更好的主意可以同时进行调试吗?当iis中的应用程序Web API导航以发布WebAPI时,一切工作正常。
答案 0 :(得分:1)
在RouteConfig.cs中尝试。
routes.MapRoute(
name: "Home",
url: "",
defaults: new { controller = "Home", action = "Index" }
);
对于WebAPiConfig.cs中的api路由
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" };
}
}
祝你好运。