IIS Express 8 - 无法写入配置文件

时间:2012-07-12 04:26:30

标签: iis-express visual-studio-2012

我正在尝试将IIS Express 8用于VS2012中的MVC站点。每当我尝试创建网站时,我都会收到以下错误:

  

文件名:   ?\ \ C:\用户\ XXXXXX \文档\ IISExpress \设置\的applicationHost.config
  错误:无法写入配置文件

是否有某种方法可以强制IIS Express使用不同的位置进行配置&记录文件夹?我知道当我从命令行运行iisexpress.exe时,我可以指向不同的位置,但是在使用Visual Studio时我无法控制它。

或者,有人有任何建议,为什么错误发生? (旁注:我的笔记本电脑处于企业环境中,在“Documents”文件夹中有一些愚蠢的加密,但是我没有遇到任何其他软件存在任何问题。我也给了“Everyone”组满了访问该文件夹。)

编辑 - 按照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%环境变量。

还有其他建议吗?

12 个答案:

答案 0 :(得分:54)

@Brad

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

希望这有帮助。

答案 1 :(得分:9)

我有一个非常相似的错误信息是由完全不同的问题引起的。

错误:

  

C:\ VS \ TFS_Projects \ SomeSolution \ SomeProject \ SomeProject.csproj:错误:创建虚拟目录http://localhost:55063/失败,错误:文件名:\\?\ C: \ VS \ TFS_Projects \ SomeSolution.vs \设置\对ApplicationHost.config   错误:由于权限不足而无法写入配置文件

更多细节:我甚至无法打开项目,因为打开它会失败。

我可以获得先前的变更集,并且它们实际上可以正常打开,但如果我得到最新的项目就无法打开。

解决方案:就我而言,事实证明,当我们更改TFS服务器时,有人添加了" .vs "文件夹到源代码控制以及其他所有内容。在这之下,一个开发人员将他的 applicationhost.config 设置为在D:\驱动器上运行站点,而我没有这样的D:\驱动器(好吧,它是一个DVD驱动器。)我是能够通过使用未更改的applicationhost.config查找先前的变更集并替换我的本地文件来实现此功能。 (我本可以尝试删除该文件夹,但我没有去那条路。)

之后,我们删除了" .vs"来自源代码管理的文件夹。

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

答案 2 :(得分:5)

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

答案 3 :(得分:2)

对于任何使用谷歌搜索的人;这可能与此问题相同:http://connect.microsoft.com/VisualStudio/feedback/details/878812/use-iis-express-is-broken-in-vs-2012-on-windows-8-1

您可以通过下载Prcocess Monitor进行检查,然后使用“Path”包含“\ Documents \ IISExpress \ config”的过滤器运行它,然后尝试更改项目以使用IIS Express。如果有一个CreateFile条目,结果为0xC0190052,那么这是同一个问题。

答案 4 :(得分:2)

我在Windows 10上使用Visual Studio 2017,并且要解决此问题,我不得不禁用OneDrive设置“保存空间并在使用时下载文件”。更改设置后,我的计算机崩溃了,但是重新启动后,我可以更改“启用SSL”,一切正常。

答案 5 :(得分:1)

C:\用户\ XXXXXX \文件\ IISExpress \配置\的applicationHost.config

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

我也遇到了问题并尝试通过在HKCU \ Software \ Microsoft中设置注册表项来解决此问题。

我犯的错误是使用HKCU,因为我没有权限通过普通帐户(我用来运行visual studio)编辑注册表,我使用的是管理帐户。当然,HKCU就是那个帐户。

所以我只使用了HKEY_USERS \"我的普通用户的SID"相反,当手动启动iisexpress.exe时,它会在指定的位置创建其文件。仍然没有用的是使用visual studio的iisexpress。似乎VS根本没有使用注册表设置。

最后,我在HKU \#34;我的普通用户的SID" \ Software \ Microsoft \ Windows \ CurrentVersion \中为Shell文件夹\个人和用户外壳文件夹\个人设置非UNC路径资源管理器\它做了伎俩。

答案 9 :(得分:0)

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

  

创建虚拟目录http://localhost:58753/
  失败了,错误:   文件名:\?\ C:\ Users \ xxxxx \ Documents \ Clients \ xxx \ Gen   II \ XXX \ VS \设置\对ApplicationHost.config   错误:无法写入配置文件

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

苦苦挣扎,并验证了加密和只读属性,并且使它们不起作用之后,我的解决方案最终是:

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

在Windows 10和IISExpress 10中都适用于VS 2013和VS 2017。