36

我正在尝试将 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% 环境变量。

还有其他建议吗?

4

12 回答 12

57

@布拉德

我刚才也遇到了你同样的问题。删除 IISExpress 文件夹上的加密和“只读”属性解决了它。在我的公司中,文档也是加密的,但我认为从 IISExpress 中删除加密不会是任何问题。

希望这可以帮助。

于 2012-07-13T18:32:40.527 回答
10

我收到了由完全不同的问题引起的非常相似的错误消息。

错误:

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”文件夹。

(我把这个解决方案放在这里,因为它是谷歌登陆我的地方,所以其他有这个错误消息的人可能会发现上述解决方案没有为他们修复它,因此他们可能会遇到这个问题。)

于 2016-08-05T19:13:49.643 回答
5

我也在一个对用户文件夹进行加密的公司环境中,删除加密并删除 IISExpress 文件夹中所有内容的只读标志对我有用。

于 2012-08-18T17:40:29.360 回答
4

我在 Windows 10 上使用 Visual Studio 2017,为了解决这个问题,我必须禁用 OneDrive 设置“在使用时节省空间并下载文件”。更改设置后,我的计算机崩溃了,但重新启动后,我能够更改启用 SSL 并且一切正常。

于 2018-07-23T20:25:40.097 回答
3

对于任何在谷歌上搜索的人;这可能与此问题相同: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 作为最后一个条目之一,那么这就是同样的问题。

于 2014-05-21T15:17:26.370 回答
2

在努力解决这个问题并验证加密和只读属性并让它们不起作用之后,我的解决方案最终是:

  • 导航到包含 IISExpress 文件夹的文件夹(在我的情况下,它在我的 OneDrive 中,而不是 Documents 文件夹中)
  • 右键单击IISExpress文件夹>安全选项卡>高级按钮
  • 将所有者更改为您自己,即使它已经是
  • 选中“替换子容器和对象的所有者”框
    • 在您完成“更改所有者”对话框之前,这可能不会出现
  • 打开IISExpress文件夹
  • 右键单击config文件夹>安全选项卡>高级按钮
  • 添加用户 > 添加主体
  • 将位置更改为本地计算机(而不是域)
  • 输入名称NETWORK SERVICE和“检查名称”
  • 按确定返回高级安全对话框
  • 确保选中“将所有子对象权限条目替换为此对象的可继承权限条目”

使用 IISExpress 10 在 Windows 10 中工作,适用于 VS 2013 和 VS 2017。

于 2018-09-05T19:33:52.490 回答
1

C:\Users\xxxxxx\Documents\IISExpress\config\applicationHost.config

取消选中文件中的只读属性。它对我有用。

于 2015-05-20T10:30:52.510 回答
0

添加注册表项似乎有效,但是,在注册表项中使用环境变量却没有。在我的环境中,只有我们的文档目录被重定向,所以我只想将 IIS Express 配置目录上移一级到 %USERPROFILE% 目录。然而,这并没有奏效。IIS Express 从字面上读取环境变量,当然无法运行。

于 2012-07-23T15:17:34.360 回答
0

我之前遇到过同样的问题,以管理员身份运行 VisualStudio(以管理员身份运行)解决了这个问题。

于 2014-07-14T21:07:22.387 回答
0

我也遇到了这个问题,并尝试通过在 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 路径,这起到了作用。

于 2015-05-18T09:29:10.073 回答
0

我收到了同样的错误,但在不同的上下文中。打开另一个开发人员提供的项目(.csproj 文件)返回此错误并且无法执行任何操作:

创建虚拟目录http://localhost:58753/
失败并出现错误: Filename: \?\C:\Users\xxxxx\Documents\Clients\xxx\Gen II\xxx\,vs\config\applicationhost.config 错误: 无法写入配置文件

我从包含项目文件的目录中删除了 Encryption 和 R/O 属性,并应用于所有子文件夹和文件。Visual Studio 现在可以读取该项目。

于 2015-10-18T02:45:34.237 回答
0

在我的情况下,我将文件夹移动到另一个位置,因此我必须编辑 applicationhost.config 文件并将虚拟目录条目更改为新位置。删除加密和设置只读没有帮助。我想如果我只是复制它而不是移动它,它会很高兴地继续工作。

于 2018-05-16T08:55:57.123 回答