如果我打开IIS并展开网站 - >默认网站,我有3个项目,我已转换为应用程序:
MyApp_Branch_01
MyApp_Branch_02
MyApp_Branch_03
这三个应用程序都使用相同的AppPool。它们的物理路径对应于我的物理驱动器上的3个唯一目录; C:\inetpub\wwwroot\MyApp_Branch_01
,...02
,...03
。
正如您可能猜到的,每个目录在SVN中都包含我们应用程序的单独分支。 01
用于构建,02
是错误修复&正在进行的工作,03
用于更多"实验"长期项目。每个分支使用不同的数据库连接。但是,对于所有这3个,如果我右键单击构建项目并转到“属性”,则在“Web”选项卡下,所有3个项目都具有Project URL
设置的相同值:它们都指向http://localhost/MyApp
。
我刚刚构建了MyApp_Branch_03
项目并运行它。一位同事过来问了一些问题,所以我不得不打开MyApp_Branch_01.sln
。我没有建造它,我没有经营它;我刚刚在Visual Studio中打开它。与此同时,我在浏览器中调试/运行了MyApp_Branch_03
。
在帮助我的同事之后,我回到了我正在做的事情......但是现在每当我在控制器中设置断点时,它都会打开来自MyApp_Branch_01
而不是03
文件的文件我在其中设置了断点。
我不明白为什么/如何发生这种情况?当您有多个使用相同URL的解决方案文件时,IIS如何确定要提供哪些DLL?
答案 0 :(得分:2)
它不是关于IIS确定要服务的DLL集合。当您打开解决方案时,如果IISUrl
文件中的csproj
元素与本地IIS中的任何WebSite匹配,则Visual Studio会自动更改网站的物理路径。