IIS Express 8 - 无法写入配置文件
Posted
技术标签:
【中文标题】IIS Express 8 - 无法写入配置文件【英文标题】:IIS Express 8 - Cannot write configuration file 【发布时间】:2012-07-11 19:11:58 【问题描述】:我正在尝试将 IIS Express 8 用于 VS2012 中的 MVC 站点。每当我尝试创建网站时都会收到以下错误:
文件名: \?\C:\Users\xxxxxx\Documents\IISExpress\config\applicationHost.config 错误:无法写入配置文件
有没有办法强制 IIS Express 为配置和日志文件夹使用不同的位置?我知道当我从命令行运行 iisexpress.exe 时可以指向不同的位置,但在使用 Visual Studio 时我无法控制。
或者,有没有人对为什么会发生错误有任何建议? (旁注:我的笔记本电脑位于公司环境中,在“文档”文件夹中进行了一些愚蠢的加密,但是我没有遇到保存到该位置的其他软件的任何问题。我还给了“每个人”组完整访问文件夹。)
编辑 - 按照http://learn.iis.net/page.aspx/1286/iis-80-express-readme/ 的说明进行操作后,我似乎仍然无法正常工作。我尝试了以下方法:
添加了指向我的备用目录的 HKCU\Software\Microsoft\IISExpress\CustomUserHome 注册表项 添加了指向我的备用目录的 HKCU\Software\Microsoft\IISExpress\8.0\CustomUserHome 注册表项 添加了指向我的备用目录的 HKLM\Software\Microsoft\IISExpress\CustomUserHome 注册表项 添加了指向我的备用目录的 HKLM\Software\Microsoft\IISExpress\8.0\CustomUserHome 注册表项 设置 %IIS_USER_HOME% 环境变量指向我的备用目录。还有其他建议吗?
【问题讨论】:
我也有同样的问题。这里提到的解决方案都没有奏效。目前,这阻碍了我们的团队采用 vs 2012。 【参考方案1】:@布拉德
我刚才遇到了同样的问题。删除 IISExpress 文件夹上的加密和“只读”属性解决了它。在我的公司中,文档也是加密的,但我认为从 IISExpress 中删除加密不会有任何问题。
希望这会有所帮助。
【讨论】:
我没有设置加密,但我确实必须删除“只读”属性并以管理员身份运行 VS2012。 删除加密和只读.. 就像一个魅力!谢谢!! 如果这不是你的答案,如果你发现自己处于我的情况,我删除了 .vs 目录以清除缓存并且没有注意到 Visual Studio 更改了我的默认构建配置到配置为使用 IISExpress 的自动生成的。因此,如果您的项目运行良好然后停止加载,我建议您在执行任何其他操作之前检查构建配置(我当然没有这样做) 糟糕,虽然我之前的“有用”评论是准确的,但它并不是神秘错误消息的根本原因。那就是自动重新创建的 .vs 文件夹继承了 NTFS 加密的事实。解密该文件夹后无需编辑项目文件即可恢复正常。【参考方案2】:我收到了一个非常相似的错误消息,由一个完全不同的问题引起。
错误:
C:\VS\TFS_Projects\SomeSolution\SomeProject\SomeProject.csproj : 错误:创建虚拟目录http://localhost:55063/ 失败,错误为:文件名:\\?\C:\VS \TFS_Projects\SomeSolution.vs\config\applicationhost.config 错误:权限不足,无法写入配置文件
更多细节:我什至无法打开项目,因为打开它会失败。
我可以获得先前的变更集,它们实际上可以正常打开,但如果我获得最新的项目,则无法打开。
解决方案:在我的案例中,事实证明,当我们更改 TFS 服务器时,有人将“.vs”文件夹与其他所有内容一起添加到源代码管理中。在这种情况下,一位开发人员将他的 applicationhost.config 设置为在 D:\ 驱动器上运行站点,而我没有这样的 D:\ 驱动器(嗯,它是一个 DVD 驱动器。)我是能够通过使用未更改的 applicationhost.config 查找先前的变更集并替换我的本地文件来完成此工作。 (我本可以尝试实际删除该文件夹,但我没有走那条路。)
之后,我们从源代码管理中删除了“.vs”文件夹。
(我把这个解决方案放在这里是因为它是谷歌登陆我的地方,所以收到此错误消息的其他人可能会发现上述解决方案没有为他们修复它,因此他们可能会遇到这个问题。)
【讨论】:
这似乎是我的问题,但删除 .vs 文件夹只工作了一天 - 第二天所有站再次出现问题,但没有 .vs 文件夹。我们无法在整个部门打开我们的 ASP 项目之一。 :-/ 这解决了我的问题。我正在使用 GIt 创建新的开发项目,这样我就可以同时做两件事。我想知道“.vs”文件夹是否应该在基本 Git 映像中。【参考方案3】:我也在企业环境中,对用户文件夹进行了加密,删除加密和删除 IISExpress 文件夹中所有内容的只读标志对我有用。
【讨论】:
【参考方案4】:我在 Windows 10 上使用 Visual Studio 2017,为了解决这个问题,我不得不禁用 OneDrive 设置“节省空间并在使用时下载文件”。更改设置后,我的计算机崩溃了,但重新启动后,我能够更改 SSL Enabled 并且一切正常。
【讨论】:
您可以保留该设置,然后右键单击特定的一个驱动器文件夹以“始终保留在此设备上”。【参考方案5】:对于任何在谷歌上搜索的人;这可能与以下问题相同:http://connect.microsoft.com/VisualStudio/feedback/details/878812/use-iis-express-is-broken-in-vs-2012-on-windows-8-1
您可以通过下载Prcocess Monitor 来检查它并使用“路径”包含“\Documents\IISExpress\config”的过滤器运行它,然后尝试将项目更改为使用 IIS Express。如果有一个 CreateFile 条目,其结果为 0xC0190052 作为最后一个条目之一,那么这就是同样的问题。
【讨论】:
【参考方案6】:在解决了这个问题并验证了加密和只读属性之后,让它们不起作用,我的解决方案最终是:
导航到包含 IISExpress 文件夹的文件夹(在我的情况下,它在我的 OneDrive 中,而不是 Documents 文件夹中) 右键单击IISExpress
文件夹> 安全选项卡> 高级按钮
将所有者更改为您自己,即使它已经是
选中“替换子容器和对象的所有者”框
在您完成“更改所有者”对话框之前,这可能不会出现
打开IISExpress
文件夹
右键单击config
文件夹> 安全选项卡> 高级按钮
添加用户 > 添加主体
将位置更改为本地计算机(而不是域)
输入名称NETWORK SERVICE
和“检查名称”
按 OK 返回高级安全对话框
确保选中“将所有子对象权限条目替换为此对象的可继承权限条目”
在带有 IISExpress 10 的 Windows 10 中工作,适用于 VS 2013 和 VS 2017。
【讨论】:
【参考方案7】:C:\Users\xxxxxx\Documents\IISExpress\config\applicationHost.config
取消选中文件中的只读属性。它对我有用。
【讨论】:
【参考方案8】:添加注册表项似乎有效,但是,在注册表项中使用环境变量却没有。在我的环境中,只有我们的文档目录被重定向,所以我只想将 IIS Express 配置目录上移一级到 %USERPROFILE% 目录。然而,这并没有奏效。 IIS Express 从字面上读取环境变量,当然无法运行。
【讨论】:
【参考方案9】:我之前也遇到过同样的问题,以管理员身份运行 VisualStudio(以管理员身份运行)解决了这个问题。
【讨论】:
【参考方案10】:我也遇到了这个问题,并尝试通过在 HKCU\Software\Microsoft 中设置注册表项来解决它,但这不起作用。
我犯的错误是使用 HKCU,因为我没有权限通过普通帐户(我用来运行 Visual Studio)编辑注册表,所以我使用的是管理帐户。那么当然,HKCU 就是为了那个原因。
所以我只使用了 HKEY_USERS\"my normal user's SID",并且在手动启动 iisexpress.exe 时,它在指示的位置创建了文件。仍然没有工作的是使用视觉工作室的 iisexpress。 VS 似乎根本没有使用注册表设置。
最后,我在 HKU\"my normal user's SID"\Software\Microsoft\Windows\CurrentVersion\Explorer\ 中为 Shell Folders\Personal 和 User Shell Folders\Personal 设置了非 UNC 路径。
p>【讨论】:
【参考方案11】:我收到了同样的错误,但在不同的上下文中。打开另一个开发人员提供的项目(.csproj 文件)返回此错误并且无法执行任何操作:
创建虚拟目录http://localhost:58753/ 失败并出现错误: 文件名:\?\C:\Users\xxxxx\Documents\Clients\xxx\Gen II\xxx\,vs\config\applicationhost.config 错误:无法写入配置文件
我从包含项目文件的目录中删除了加密和 R/O 属性,并应用于所有子文件夹和文件。 Visual Studio 现在可以读取项目了。
【讨论】:
【参考方案12】:在我的情况下,我将文件夹移动到另一个位置,因此我必须编辑 applicationhost.config 文件并将虚拟目录条目更改为新位置。删除加密和设置只读没有帮助。我想如果我只是复制它而不是移动它,它会很高兴地继续工作。
【讨论】:
以上是关于IIS Express 8 - 无法写入配置文件的主要内容,如果未能解决你的问题,请参考以下文章
VS2015 无法启动IIS Express Web服务器(已解决)
win7下面用IIS部署系统,出现web.config无法写入配置文件
无法让 IIS Express 8 beta 将网站作为 64 位进程运行