2013-12-09 103 views
8

我在Visual Studio 2012解決方案中有一個ASP.NET Web應用程序項目。我將這稱爲A.Visual Studio 2012啓動錯誤項目進行調試

我將A的目錄複製到一個新的目錄中以對其進行克隆。我將這稱爲B.

我對A和B都進行了大量更改,以至它們甚至沒有遠程相似。樣式表,腳本,HTML和後端都是不同的。

我啓動了A進行調試,並且它出現在我的瀏覽器中。我調試了一段時間的應用程序,然後通過Visual Studio 2012中工具欄上的「停止調試」圖標終止調試。

然後我啓動了B進行調試。相反,我得到A.

我試着清除瀏覽器緩存,但是,這不可能是問題,因爲應用程序的服務器端也是錯誤的。

我試過在運行Clean後重建項目。我仍然看到A,同時試圖調試B.

我試圖殺死所有與調試會話相關的進程,包括所有iisexpress.exe,MSBuild.exe,WebDev.WebServer40.EXE,Microsoft.VisualStudio.Web.Host.exe實例。

我試着完全關閉Visual Studio 2012,重新打開它,然後重試調試。

編輯

關閉並重新打開VS2012第三次之後,現在開始讓我看到B.沒有別的改變。


最好我能想出是必須有某種類型的項目設置的,需要加以改變,以反映該項目居住在比它之前被複制不同的空間,但我還沒有跟蹤放下這樣的設置。

我錯過了什麼?

+0

右鍵單擊解決方案資源管理器中的項目B節點並設置爲「啓動項目」? – IrishChieftain

+0

@IrishChieftain我試過了,但沒有奏效。注意這些是在兩個獨立的Visual Studio實例中 - 兩個獨立的解決方案。 – crush

+0

進入每個Web應用程序的屬性/ Web,並確保它們設置爲在不同的端口上運行。如果選擇自動分配端口,則切換到某個端口保存,然後切換回自動。 –

回答

12

我今天剛剛遇到過這個問題,完全按照您的方式完成(複製了一個項目,然後進行了編輯)。因此,我想分享我的解決方案。

如果你去項目BProperties(在解決方案資源管理器中找到),你會發現一個Web標籤:

enter image description here

在你Servers部分,改變Project Url到:

http://localhost: +(+1)+ /

d然後打創建虛擬目錄

然後,您應該能夠重新運行您的項目,因爲他們正在逃跑不同的URL,你不應該再看到這種衝突。

+0

這實際上是我最終使用的解決方案 - 我忘了回來回答我自己的問題。謝謝! – crush

+0

@crush:我晚會晚了幾年:P – jbutler483

+0

有同樣的問題,我花了很長時間才弄清楚發生了什麼事情。令人遺憾的是,我正在使用Visual Studio 2013 Update 5 ...所以這仍然沒有固定在他們的最後。嘆。 –

7

我處於完全相同的情況。問題在於兩個項目(Project_A & Project_B)都設置爲在IIS Express中的相同端口上運行。

IISExpress通過查看位於<文檔> \ IISExpress \ config \ application.config中的配置文件來確定端口/應用程序。

打開該文件並尋找部分<網站>。你應該找到你的VS項目列表。找到您的項目(A和B),並確保這兩個項目都是不一樣的端口

<site name="Project_A" id="17"> 
<application path="/" applicationPool="Clr4IntegratedAppPool"> 
<virtualDirectory path="/" physicalPath="C:\Projects\Somefolder\ Project_A " /> 
</application> 
<bindings> 
<binding protocol="http" bindingInformation="*:64212:localhost" /> 
</bindings> 
</site> 
<site name="Project_B" id="18"> 
<application path="/" applicationPool="Clr4IntegratedAppPool"> 
<virtualDirectory path="/" physicalPath="C:\Projects\Somefolder\ Project_B " /> 
</application> 
<bindings> 
<binding protocol="http" bindingInformation="*:64212:localhost" /> 
</bindings> 
</site> 

如果是這樣的情況下運行,刪除一個條目(即Project_B),然後在Visual Studio中去重新創建條目。

在VS中,進入Project_B的屬性。單擊Web選項卡並查找「服務器」部分。

輸入新的端口(即通過`http://本地主機:64213`),然後點擊「創建虛擬目錄」按鈕。這將在「application.config」文件中添加一個條目,用新的關聯(即Project_B /端口64213)

這應該可以解決這個問題。希望這可以幫助

+0

這是另一個很好的解決方案。我不確定哪種解決方案最好。他們似乎大致相同,但做法不同。我選擇了另一種解決方案,因爲它沒有深入到手動操作IIS Express實例配置文件(我偶爾會這樣做)。我認爲通常最好是允許VS配置文件。 – crush

0

這個問題沒有標記爲回答,因爲我有類似的問題,我想我會回答它。

你需要到項目>屬性>網頁,然後檢查使用本地Web服務器框,並覆蓋應用程序根(如果適用),將路徑名更改爲您正在使用保存,它應該工作。

相關問題