【问题标题】:How to setup IIS Express to run a Visual Studio project in a Virtual Directory instead of root?如何设置 IIS Express 以在虚拟目录而不是根目录中运行 Visual Studio 项目?
【发布时间】:2011-09-16 20:26:26
【问题描述】:

我正在使用 VS 2010 并使用 IIS Express 而不是 Visual Studio 的 Web 服务器。

默认情况下,Web 应用程序在 localhost 的根目录下运行,如下所示:http://localhost:50369/

我希望它在 http://localhost:50369/Enet/ 上运行,因为这是它在发布时最终会出现的虚拟目录。

当我尝试添加虚拟目录时,我的 applicationhost.config 看起来是这样的:

<site name="EssenceNet" id="1">
                <application path="/" applicationPool="Clr4IntegratedAppPool">
                    <virtualDirectory path="/" physicalPath="E:\dev\EssenceNet\Src\EssenceNet.Web" />
                </application>
                <application path="/ENet">
                    <virtualDirectory path="/" physicalPath="E:\dev\EssenceNet\Src\EssenceNet.Web" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation=":50369:localhost" />
                </bindings>
            </site>

当我浏览到http://localhost:50369/ 时,我的应用程序工作正常。 当我浏览到http://localhost:50369/Enet/ 时,我的 MVC 应用程序可以工作,但它找不到 CSS 或 JS 文件之类的文件。他们的路径是我所期望的(除了前缀/Enet之外与之前相同)但没有找到。

正确执行此操作的步骤是什么?显然我在某个地方出错了。 非常感谢您的帮助。

【问题讨论】:

    标签: visual-studio visual-studio-2010 iis iis-7.5 iis-express


    【解决方案1】:

    事实证明我的配置几乎是正确的,但应用程序需要不同的物理路径。

    看起来你确实需要第一个应用程序,即使你不使用它。我只是将它的物理路径设置为与 /ENet 不同的路径,然后它就起作用了。

    【讨论】:

    • 对于从支持通过 UI 配置 VirtualPath 的 Visual Studio 版本升级到 2013 的项目,我发现它会自动插入两个单独的“应用程序”,就像您概述的那样,并设置它们的路径成为同一件事。因此,与您的解决方案相同,但如果您想要两者都使用完全相同的路径似乎是可以的。
    猜你喜欢
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2011-06-11
    • 2018-02-26
    • 2010-12-28
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多