【问题标题】:Visual Studio 2012 Launches Wrong Project For DebuggingVisual Studio 2012 启动错误的调试项目
【发布时间】:2013-12-27 02:42:28
【问题描述】:

我在 Visual Studio 2012 解决方案中有一个 ASP.NET Web 应用程序项目。我将其称为 A。

我将 A 的目录复制到了一个新目录以对其进行克隆。我将其称为 B。

我对 A 和 B 都进行了广泛的更改,以至于它们甚至一点都不相似。样式表、脚本、HTML 和后端都是不同的。

我启动 A 进行调试,它按预期出现在我的浏览器中。我调试了应用程序一段时间,然后通过 Visual Studio 2012 工具栏上的“停止调试”图标终止了调试。

然后我启动 B 进行调试。相反,我得到了 A。

我尝试清除浏览器缓存,但这不可能是问题,因为应用程序的服务器端也有问题。

在运行 Clean 后,我尝试重建项目。我在尝试调试 B 时仍然看到 A。

我尝试杀死与调试会话相关的所有进程,包括所有 iisexpress.exe、MSBuild.exe、WebDev.WebServer40.EXE、Microsoft.VisualStudio.Web.Host.exe 实例。

我尝试完全关闭 Visual Studio 2012,重新打开它,然后重试调试。

编辑

在第三次关闭并重新打开 VS2012 后,它现在开始让我看到 B。其他没有任何变化。


我能想到的最好的办法是必须更改某种类型的项目设置,以反映该项目与被复制之前所处的空间不同,但我还没有找到这样的设置.

我错过了什么?

【问题讨论】:

  • 在解决方案资源管理器中右键单击项目B节点并设置为“启动项目”?
  • @IrishChieftain 我试过了,但没用。请注意,它们位于 Visual Studio 的两个独立实例中 - 两个独立的解决方案。
  • 进入每个 Web 应用程序的属性/Web 并确保它们被设置为在不同的端口上运行。如果选择了自动分配端口,切换到某个端口保存,然后将其切换回自动。
  • @EugeneS。这是个好主意,可能会解决问题,但没有解释为什么会发生这种情况。我正在杀死所有当前正在运行的 IISExpress 实例。为什么在同一端口上运行新实例会导致看到以前的解决方案?
  • 你不能在属性面板中设置项目文件夹吗??

标签: asp.net visual-studio-2012


【解决方案1】:

我今天刚刚遇到这个问题,和你完全一样(复制一个项目,然后编辑)。因此,我想分享我的解决方案。

如果您转到 Project BProperties(在解决方案资源管理器中找到),您会发现一个 Web 选项卡:

在您的 Servers 部分中,将 Project Url 更改为:

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

然后点击创建虚拟目录

然后您应该能够重新运行您的项目,并且由于它们正在使用不同的 Url,您应该不会再看到这种冲突。

【讨论】:

  • 这实际上也是我最终使用的解决方案 - 我忘了回来回答我自己的问题。谢谢!
  • @crush:我只是迟到了几年:P
  • 遇到了同样的问题,我花了很长时间才弄清楚发生了什么。可悲的是,我正在使用 Visual Studio 2013 Update 5 ......所以这仍然没有解决。叹息。
  • 在与原始项目相同的解决方案中创建项目模板然后使用它创建新项目后,在 VS 2015(社区)上遇到了这个问题。奇怪的是我第一次运行时没有调试它加载项目很好,但后来却遇到了这个奇怪的问题。
  • 提示:如果您的解决方案有多个项目,您需要找到您的 UI 项目并右键单击该项目 -> 属性 -> 网络
【解决方案2】:

我的情况完全相同。问题在于,我们设置为在 IIS Express 的同一端口上运行两个项目(Project_A 和 Project_B)。

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://localhost:64213`)并点击“创建虚拟目录”按钮。这将在“application.config”文件中添加一个具有新关联的条目(即 Project_B / 端口 64213)

这应该可以解决问题。希望这可以帮助

【讨论】:

  • 这是另一个很好的解决方案。我不确定哪种解决方案最好。它们看起来大致相同,只是做的不同。我选择了另一个解决方案,因为它没有深入研究手动操作 IIS Express 实例配置文件(我有时会这样做)。我认为通常最好让VS配置文件。
【解决方案3】:

这个问题没有被标记为已回答,因为我遇到了类似的问题,我想我会回答的。

您需要转到项目 > 属性 > 网络,然后选中使用本地网络服务器框并覆盖应用程序根目录(如果适用),将路径名称更改为您正在使用的路径名称保存,它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多