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,這個問題呢?你能得到任何有用的信息嗎? –

相關問題