You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio加载项目时创建虚拟目录失败(applicationhost.config配置异常)

IIS Express 虚拟目录创建失败、applicationhost配置缺失的解决方案

问题核心逻辑

  • Visual Studio加载ASP.NET Web类项目时,会通过写入IIS Express的applicationhost.config配置文件,自动为项目创建对应的站点虚拟目录。一旦写入流程被权限、文件锁拦截,或者两个项目读取的配置文件路径不一致,就会弹出配置文件相关的报错提示
  • 检查现有<sites>节点仅存在projectwebhr的站点配置、找不到projectwebfinance对应条目,本质就是第二个项目的站点配置压根没有成功写入VS正在读取的那份配置文件

实际操作步骤

  • 找准要修改的配置文件
    别乱改系统目录下的通用IIS配置,VS默认加载的IIS Express配置文件路径为C:\Users\当前登录用户名\Documents\IISExpress\config\applicationhost.config。很多人排查半天没效果,就是因为两个项目因为启动权限不同,分别读取了不同目录下的配置文件,互相写的条目根本读不到
  • 解除配置文件的写入限制
    找到上述路径的applicationhost.config文件,右键打开文件属性,取消“只读”勾选;切到安全 tab 页,给当前Windows登录账号分配“完全控制”权限,从根源上避免VS写配置时被系统权限拦截
  • 手动补全缺失的站点配置
    参照现有projectwebhr的配置格式,在<sites>节点内追加projectwebfinance的配置条目,注意避开三个容易引发冲突的点:
    • 站点id不能和现有条目重复:现有条目id为1(WebSite1)、2(projectwebhr),新条目顺排为3即可
    • 绑定端口不能和现有配置撞车:现有绑定端口为8080、2101,新站点选个没被系统、其他软件占用的空闲端口就行
    • 物理路径要和本地TFS拉取的项目实际路径完全一致,别和现有配置的路径写法错配层级
      可以直接套用的配置模板:
    <site name="projectwebfinance" id="3">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\本地TFS拉取路径\projectwebfinance\projectwebfinance" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:2201:localhost" />
        </bindings>
    </site>
    
  • 清理配置文件的锁占用
    关掉所有打开的Visual Studio窗口,打开任务管理器把所有残留的iisexpress.exe后台进程全部结束掉。很多人改了配置还是报错,就是因为之前关VS的时候后台进程没退,一直攥着配置文件的写权限,你改的内容根本存不进去,下次开项目读的还是旧配置

容易踩的坑

  • 别一会用管理员模式开一个解决方案、一会用普通模式开另一个,两种启动模式会分别定位到不同用户目录下的IIS Express配置文件,直接出现项目间配置完全不互通的问题
  • 改完配置记得核对项目根目录下的.csproj文件,确认里面IISUrl配置项的站点名、端口号和你手动写进config的条目完全匹配,不然VS加载时会重复尝试创建新站点,再次触发写入报错

内容的提问来源于stack exchange,提问作者user9517769

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 11:45:08