设置
我们有一个VS 2017解决方案和2个ASPNET核心2.0项目:
项目1: WebUi -一个基于Vue的UI项目,其中包含应用程序的前端
项目2: WebApi -一个包含所有api实现的WebAPI项目
IIS下的生产性部署如下所示:

Web物理路径指向一个空文件夹。WebApi指向发布WebApi VS项目的文件夹。WebUi指向发布WebUi VS项目的文件夹。这很好: WebApi在/webapi下是可访问的,WebUi在/webui下是可访问的。这种设置还意味着我们不需要处理CORS请求,因为两个项目都运行在相同的域中。
我们正在努力实现的
现在,我们正试图在VS 2017中定义一个设置,这将允许同时轻松地调试两个项目。到目前为止,我们得到的是在调试模式下发布项目,然后附加到宿主可执行文件。这个很好用。问题是,对于代码中的每一个更改,都需要另一个发布来调试新代码。这太费时了。
更好的方法是只在VS中单击F5,它将在同一主机(如IIS安装程序)下以调试模式启动两个应用程序,并能够同时调试两个项目。一次一个项目起作用,但两者都不起作用。
我们尝试将调试属性中的两个项目的AppUrl设置为相同的url,但使用不同的路径:
项目WebUi:

项目WebApi:

但不幸的是,这并没有奏效。
如何设置我们的项目以便同时调试两个项目有一个简单的解决方案?
发布于 2017-09-01 14:53:30
我不相信这是可能的根据我的经验,您只能将调试器附加到解决方案下的单个项目。就我个人而言,我会合并这两个项目,API部分位于API区域。另一种方法是将这两个项目移动到自己的解决方案中,然后必须打开2个visual studio实例来运行站点。
在Ui项目Startup.cs中设置Api区域,配置方法
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});创建文件夹结构区域> Api > Controller。然后将所有API控制器放在文件夹中。然后向所有Api控制器添加区域和路由属性
[Area("WebApi")]
[Route("[area]/[Controller]")]这样设置之后,Ui项目将驻留在/上,而api将驻留在/WebApi中。整个解决方案将有一个项目,一个IIS站点,VS将能够同时调试所有的东西。如果希望Ui驻留在/WebUi上,可以更新主路由,或者在区域中创建另一个文件夹。
发布于 2017-09-13 06:19:29
如果您想调试部署项目,我认为唯一的选择是将调试器从VS附加到每个应用程序两次。
我们通常通过更改项目属性->Web->Servers->Local>为这两个项目创建虚拟目录来在IIS下运行项目,然后在调试时在IIS下运行项目。
要运行这两个项目,您可以遵循解决方案属性-> startup >多个启动项目-> Set Start Action ->F5,VS将运行这两个项目。
因此,您可以按照上述步骤重新发布您的项目,然后您将能够为两个项目进行调试,或者,您可以只用于开发和测试,如果没有问题,您可以发布它们。
https://stackoverflow.com/questions/46002774
复制相似问题