0

设置在Visual Studio中同时调试多个ASPNET核心应用

我们有2个ASPNET核2.0项目VS 2017年的解决方案:

项目1:WEBUI - 基于Vue公司以打字稿的UI项目包含应用程序

项目2的前端:的WebAPI - 包含所有的API实现一个项目的WebAPI

IIS下的高效部署看上去升IKE在此:

enter image description here

的网络物理路径指向一个空文件夹。 WebApi指向发布WebApi VS项目的文件夹。 WebUi指向WebUi VS项目发布的文件夹。这工作正常:WebApi可以在/ webapi下访问,WebUi可以在/ webui下访问。这个设置也意味着我们不需要处理CORS请求,因为两个项目都在同一个域下运行。

我们正在努力实现

现在,我们正试图确定在2017年VS的设置,将允许这两个项目的调试方便的同时。到目前为止,我们得到的是以调试模式发布项目,然后附加到主机可执行文件。这工作正常。问题在于,为了调试新代码,需要对代码中的每个更改进行一次发布。这需要太多时间。

最好的方法是在VS中打F5,它将在调试模式下在同一主机(如IIS设置)下启动这两个应用程序,并且能够同时调试两个项目。一次有一个项目有效,但不是两个。

我们已经尝试设置AppUrl在调试属性这两个项目的相同的URL,但使用不同的路径:

项目WEBUI:

enter image description here

项目的WebAPI:

enter image description here

但不幸的是,这并没有奏效。

我们如何建立我们的项目,以便有一个简单的解决方案来同时调试两个项目?

回答

0

我不相信这是可能的。根据我的经验,您只能将调试器附加到解决方案下的单个项目。就我个人而言,我会合并这两个项目,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>控制器。然后将所有的API控制器放在文件夹中。然后加入区域和路由属性对所有API控制器

[Area("WebApi")] 
[Route("[area]/[Controller]")] 

有了这个设置UI项目将驻留在/和API将驻留在/的WebAPI。整个解决方案将有一个项目,一个IIS站点,并且VS将能够同时调试所有内容。如果您希望Ui驻留在/ WebUi上,请更新您的主路线图或在区域中创建另一个文件夹。

+0

这是可能的,它现在为我们工作为好,但只有当我们发布这两个项目,然后手动连接到运行两个应用程序的过程。唯一的问题是,这是一个既费时又麻烦的过程,我们希望将其简化。 –

+0

所以你是从IIS调试而不是Visual Studio,是否正确? –

+0

这些应用程序在IIS中托管。我将调试器从VS连接两次到每个应用程序。 –

0

如果你要调试的部署项目,我认为唯一的选择是从VS两次调试器附加给各应用。

我们通常通过改变项目属性 - >基于Web>服务器 - >本地IIS- IIS下运行的项目制定项目>创建两个项目的虚拟目录,然后它会根据IIS调试时运行。

要运行这两个项目,你可以遵循解决方案属性 - >启动项目 - >多启动项目 - >设置开始行动了他们 - > F5,VS将运行两个项目。

所以你可以按照上面的步骤重新发布你的项目,然后你将能够调试这两个项目,或者,你只能用于开发和测试,你可以发布他们,如果没有问题。

+0

@Copil tembel,这个问题呢?你能得到任何有用的信息吗? –

相关问题