【问题标题】:VS 2012 launching app based on wrong pathVS 2012 基于错误路径启动应用程序
【发布时间】:2013-04-04 17:58:47
【问题描述】:

我在 c:\Dev\MyApp\Main 上有一个受源代码控制(TFS 2012 也是)的应用程序。

因为我正在开发一个新功能,我决定在 c:\Dev\MyApp\BranchNewFeature 上开设一个分支。

我开发了,当我决定是时候进行测试时,就像我根本没有做任何更改一样。我按下 F5,我看到了应用程序的基线版本...查看它我注意到一个非常奇怪的事实:当我检查 IIS Express 时,应用程序的“启动路径”是旧的(c:\Dev\MyApp\主要)。

谁能帮我让 IIS Express 指向新路径? (C:\Dev\MyApp\BranchNewFeature)

【问题讨论】:

  • 您是否尝试关闭 IIS express 并重新启动它?
  • @cheesemacfly 是的!我什至已经重新启动了整台机器......
  • 你在C:\Users\your_name\Documents\IISExpress\config\applicationhost.config中改变了什么吗?
  • @cheesemacfly 不!我正在查看那个文件,我所有的网络应用程序都在那里!它指向错误的文件!
  • 那么我想如果你把正确的路径放在这里它应该可以工作!

标签: iis version-control visual-studio-2012 iis-express


【解决方案1】:

我遇到了同样的问题。为了解决这个问题,我使用了cheesemacfly 的建议,将C:\Users\%USERNAME%\Documents\IISExpress\config\applicationhost.config 更新为指向新目录。

此解决方案的明显缺点是,如果您计划经常在新分支之间切换,则需要重复执行此操作。似乎是 VS2012 中的一个错误...

【讨论】:

  • 在 VS 2013 中也重现
  • 这不是一个答案,而是一种解决方法... VS 应该按预期启动它...
  • 我通过右键单击 Visual Studio 中的一个项目解决了这个问题,并在 Web 下更改了 Project Url 的端口(它们是相同的)。然后我将我的 applicationhost.config 文件重命名为 applicationhost_bak.config,并重新启动了 Visual Studio。
  • 啊!我今天浪费了 4 个小时来追踪这个问题。感谢您的建议。我在配置中更改了路径,现在一切正常。
【解决方案2】:

重启 VS 似乎可以解决这个问题。这只是一种替代解决方案,就像所有 Windows 产品的规范一样 - 关闭并重新启动,然后就可以正常工作了!

发生的事情是这样的: 在使用 VS2013 在分支中处理 Web 项目后,我遇到了同样的问题。正如上面提到的 Chris Gillum,我在重新启动 VS 时打开了 applicationhost.config,并且该文件使用正确的路径自动刷新。因此,这绝对是 Visual Studio 中的一个错误。

更新:

自从我发布这个答案以来,我已经多次看到这个问题。而且我找到了重新启动 VS 的替代方法。这是我现在要做的:

  1. 右键单击 IISExpress 图标并单击“显示所有应用程序”
  2. 从列表中选择站点名称
  3. 单击(并打开)配置文件
  4. 在以下部分搜索并修复工作区的物理路径:

    <sites>
        <site name="MyWebSite" id="XXX">
            <virtualDirectory path="/" physicalPath="FIX_THIS_PATH" />
        </site>
    <sites>
    

IISExpress会自动刷新站点,不需要重启VS。希望这对某人有所帮助。

【讨论】:

  • 我的问题是我同时打开了两个分支。在 MAIN 中修复问题并将其关闭后,DEV 运行了错误的代码。使用 DEV 项目简单地重新启动 VS2013 即可解决此问题。谢谢...
  • 这是一个很好的答案,因为自发布原始问题以来,IIS Express 发生了一些变化。在 VS 2015 中,IIS Express 的配置文件存储在解决方案文件夹的 .vs 文件夹中。
【解决方案3】:

如果您在这里搜索 Visual Studio 2015 中的相同问题,applicationhost.config 文件已移至隐藏文件夹:$SolutionDirectory/.vs/config。

【讨论】:

    【解决方案4】:

    当您打开包含 IISExpress Web 项目的 Visual Studio 解决方案时,applicationHost.config &lt;site&gt; 元素配置会更新。如果您随后为单独的分支打开解决方案,&lt;site&gt; 配置可能会被覆盖以指向该单独的分支。

    例如,假设您有一个解决方案的两个分支,其中包含一个配置为在端口 4000 上使用 IISExpress 的 Web 项目。当您打开 Branch1 的解决方案时,applicationHost.config 将更新为注册一个 &lt;site&gt; 元素位于 localhost:4000 的站点指向 Branch1 的文件夹。当您“开始调试”您的解决方案时,您的浏览器会打开 localhost:4000 并且一切正常。

    如果您随后打开 Branch2 的解决方案,将再次修改 applicationHost.config,覆盖 &lt;site&gt; 元素,以便 localhost:4000 现在指向 Branch2。现在,如果您在打开的 Branch1 解决方案或打开的 Branch2 解决方案中“开始调试”,则 localhost:4000 将指向 Branch2,因为这就是 applicationHost.config 文件中的内容。

    要解决此问题,请将两个分支配置为使用不同的端口,然后 Visual Studio 将管理两个单独的 applicationHost.config &lt;site&gt; 元素,每个分支一个。每次创建新分支时,您都需要记住配置一个新的端口号。

    【讨论】:

      【解决方案5】:

      我有类似的情况,我复制了一个项目。运行项目后,它会在浏览器中显示原始项目,而不是我复制、编辑的版本。我的解决方案是从配置文件中删除所有受影响的站点:

      C:\Users\%USERNAME%\Documents\IISExpress\config\applicationhost.config

      然后我不得不在 Visual Studio 中右键单击该项目,单击Properties,然后单击Web 选项卡,在此选项卡上我更改了Project Url 中指定的端口并保存。 Visual Studio 然后询问我是否要将项目添加回应用程序主机配置文件。我点击是并运行项目,突然一切都很好。

      我的特殊问题不是 Visual Studio 中的错误,而是配置不匹配。

      【讨论】:

        【解决方案6】:

        当我发现这篇文章时,我遇到了类似的情况,正在寻找答案。我考虑过应用这个修复,但觉得每次需要再次分支或合并时都需要付出很多努力。

        我做了更多的挖掘工作,我相信我找到了更简单的解决方法。我发现在 Visual Studio 2013 中,如果您打开项目的属性,然后单击 Web 选项,您将看到一个带有“创建虚拟目录”按钮的服务器部分。

        如果你点击这个按钮,它会提示你一个关于它指向一个不同的目录然后项目所在的问题,想要修复它。当您单击是时,它会为您修复,当您现在调试时,它将从正确的位置拉出。

        【讨论】:

          【解决方案7】:

          在 VS 2015 中,我不必直接编辑配置文件。我打开了分支项目并转到项目下的属性页面。转到 Web 选项卡并编辑服务器 > 项目 URL。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-23
            • 2022-01-06
            • 1970-01-01
            • 2013-10-28
            • 2021-02-10
            • 2015-04-16
            相关资源
            最近更新 更多