2013-12-09 50 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服务器框,并覆盖应用程序根(如果适用),将路径名更改为您正在使用保存,它应该工作。