visual-studio - 如何防止 Visual Studio 修改 applicationhost.config 中的 IIS Express 站点物理路径?

标签 visual-studio iis-express applicationhost

我有一个 Visual Studio Web 应用程序项目,由于某些原因,该项目将文件从多个项目复制到单独的输出目录。我想使用此输出目录作为关联 IIS Express 站点的根目录。在 IIS Express 的 applicationhost.config 文件中,我可以将关联站点的物理路径设置为正确的目录。我会这样设置:

<site name="MySiteName" id="42">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="c:\my\desired\path" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:63470:localhost" />
    </bindings>
</site>

但是,当我重新打开项目时,Visual Studio 会覆盖我指定的物理路径,将其恢复到项目自己的目录。更糟糕的是,Visual Studio 没有给我任何迹象表明它已经做到了这一点。 <virtualDirectory> 的方法如下:元素在 Visual Studio 弄乱后看起来:

        <virtualDirectory path="/" physicalPath="c:\path\to\project" />

如何防止 Visual Studio 覆盖此路径?

最佳答案

Visual Studio 2013 和 2015 不会更改选项“覆盖应用程序池 URL”的物理路径:

enter image description here

文件 %userprofile%\documents\iisexpress\config\applicationhost.config 默认情况下如下所示:

<site name="MyWebSite" id="1477659296">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Projects\MyWebSite" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:62238:localhost" />
        <binding protocol="http" bindingInformation="*:62238:*" />
    </bindings>
</site>

只需复制上面的默认 block ,直接粘贴到下面并进行一些更改即可。更改 nameidphysicalPath 并使用附加子域覆盖 URL。就我而言调试:

<site name="MyWebSiteOverwritten" id="99999999">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Projects\DifferentPath" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:62238:debug.localhost" />
    </bindings>
</site>

现在,当我启动 VS 并运行 IIS Express 时,Visual studio 不会更改覆盖 URL 的 applicationhost.config 中的物理路径。这对我有用。

Visual Studio 2015 提示:Visual Studio 2015 使用文件 YourProject/.vs/config/applicationhost.config 并在您每次打开环境时覆盖它。打开您的 *.proj 文件并设置以下条目:

<UseGlobalApplicationHostFile>true</UseGlobalApplicationHostFile>

通过此配置,IIS Express 使用位于以下位置的全局应用程序主机文件:%userprofile%\documents\iisexpress\config\applicationhost.config

关于visual-studio - 如何防止 Visual Studio 修改 applicationhost.config 中的 IIS Express 站点物理路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467083/

相关文章:

node.js - 我怎样才能让jade模板在保存操作时在Visual Studio中自动编译?

iis-express - IISExpress 从远程计算机返回 503 错误

iis - Umbraco 6 部署到生产环境,页面呈现空白

asp.net - IIS 配置错误 - 此配置部分不能在此路径中使用

visual-studio - Visual Studio 2015 中的 "Roslyn Code Fixes"是什么?

c++ - 64 位 exe 在 vi​​sual studio 外崩溃但在 visual studio 内工作

javascript - (ESLint) 找不到规则 'react/jsx-sort-prop-types' 的定义

visual-studio - 添加 <mimeMap> 条目会导致 IIS Express 上的其他静态内容出现 500

iis - applicationHost.config 中是否有替代 configSource 的方法?

以明文形式显示的 IIS 应用程序池标识帐户密码