2014-03-06 39 views
0

一些歷史...與VS2013一起使用TFS時,如何爲多個Web工作區配置IISExpress?

一段時間以來,我一直在使用VS2010與TFS開發一個網站,我工作使用多個工作區;例如,工作區DEV1可能具有部分實現的新功能的代碼,因此我將啓動VS2010的第二個實例,並在工作區DEV2中打開相同的解決方案以修復錯誤。

在解決方案文件,端口號是固定的,因此如果我在任何工作場所開設一個實例進行測試的URL開始http://localhost:8251/Core/...。如果我打開第二個副本,那麼VS2010檢測到第一個實例,檢出解決方案文件並分配一個隨機端口號。因此,URL現在可能開始http://localhost:12345/Core/...。顯然,在大多數情況下,端口號並不重要,但將其固定用於測試很方便。

所有使用它的「內在」的Web服務器(卡西尼)運作良好VS2010下。我可以在不同的工作空間中使用解決方案打開VS2010的多個實例,並且從來沒有任何「交叉激活」,即在一個實例中打開頁面從另一個工作空間訪問文件。

...歷史的終結。

我們現在正在VS2013和「內部」網絡服務器已刪除,因此IISExpress有可能被用來進行測試。問題是如何配置它,使其適用於可以動態分配端口號的多個TFS工作區。

首先要注意的是,存儲的啓動頁面「Default.aspx?param = ...」不起作用,VS2013下的IISExpress嘗試打開http://localhost:8251/Default.aspx...忽略項目名稱。所以在初次失敗後,我需要輸入一個新的URL。顯然,一旦我們從VS2010完全遷移到VS2013,我可以將啓動頁面更改爲「Core/Default.aspx ...」,一切都會好起來的。

我也一直告訴我可以在我的文檔配置文件「IISExpress /對ApplicationHost.config」(?)文件夾,包括類似於線...

 
<site name="Core" id="3"> 
    <application path="/" applicationPool="Clr4ClassicAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\Working\DEV1\Core" /> 
    </application> 
    <application path="/Core" applicationPool="Clr4ClassicAppPool"> 
     <virtualDirectory path="/" physicalPath="C:\Working\DEV1\Core" /> 
    </application> 
    <bindings> 
     <binding protocol="http" bindingInformation="*:8251:localhost" /> 
    </bindings> 
</site> 

這似乎是工作對於第一個工作空間,但不清楚如何將其擴展到多個工作空間,尤其是考慮到端口號將被動態分配給第二,第三等解決方案。簡單地複製上面的DEV2,DEV3等,加上站點名稱並根據需要更改ID,似乎最初工作,但進一步的調查表明,IISExpress實際上使用DEV1工作區!即它使用了第一個匹配的應用程序。我是否必須單獨按工作區命名網站?我是否必須硬編碼每個實例的端口號?那麼我如何參考每一個?在VS2010處理多個工作區的簡單性之後,我認爲這完全是一團糟!

總之,我想要的是能夠使用多個工作空間引用相同的解決方案來打開VS2013的一個或多個實例,並且能夠並行運行多個應用程序副本,可能使用動態分配的端口數字,並知道每個實例正在使用自己的文件夾。如果只打開一個實例,它應該使用默認端口號,但它已經被使用,應該只分配一個隨機端口,而不會干擾其他解決方案。

此外,儘管測試,似乎什麼重寫這個文件。這是正常的,因爲一旦我有一個可行的配置,我不希望它改變! [更新:看起來我不是唯一一個有這方面問題的人,因爲其他人詢問了這個here!然而,似乎並沒有解決這個問題的方法。]

這將是這麼簡單得多,如果MS沒有刪除卡西尼...:感嘆:

更新:似乎這是很難在VS2012以及other have a similar problem!

+0

有了進一步的思考和實驗的時間,我意識到IISExpress的部分答案只是將每個工作區視爲一個單獨的網站 - 這將是IISExpress將如何查看它。在多個VS2013會話之間獲得有趣的效果,其中在一個會話中啓動一個調試會話終止另一個會話中的IISExpress!仍然認爲VS2010更易於使用! – StarNamer

回答

0

您是否嘗試過設置配置文件使用command line parameter

+0

我會看看那個。但是這不意味着每個工作區/實例都需要啓動選項來指定IISExpress的文件夾等? – StarNamer

相關問題