IIS Express 8 - 无法写入配置文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS Express 8 - 无法写入配置文件相关的知识,希望对你有一定的参考价值。
我试图在VS2012中使用IIS Express 8作为MVC站点。每当我尝试创建网站时,我都会收到以下错误:
文件名:? C: Users xxxxxx Documents IISExpress config 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%环境变量。
还有其他建议吗?
@Brad
我刚才遇到了同样的问题。删除IISExpress文件夹上的加密和“只读”属性解决了它。在我的公司中,文档也是加密的,但我认为从IISExpress中删除该加密不会是任何问题。
希望这可以帮助。
我收到了同样的错误,但在不同的背景下。打开另一个开发人员提供的项目(.csproj文件)返回此错误并且无法执行任何操作:
创建虚拟目录http://localhost:58753/ 失败并出现错误:文件名:? C: Users xxxxx Documents Clients xxx Gen II xxx ,vs config applicationhost.config错误:无法写入配置文件
我从包含项目文件的目录中删除了Encryption和R / O属性,并应用于所有子文件夹和文件。 Visual Studio现在可以读取该项目。
在我的情况下,我将文件夹移动到另一个位置,因此我必须编辑applicationhost.config文件并将virtualdirectory条目更改为新位置。删除加密和设置只读关闭没有帮助。我想如果我刚刚复制它而不是移动它,它将很乐意继续工作。
在努力解决这个问题,并验证加密和只读属性,并让它们无法工作之后,我的解决方案最终成为:
- 导航到包含IISExpress文件夹的文件夹(在我的例子中,它位于我的OneDrive中,而不是Documents文件夹中)
- 右键单击
IISExpress
文件夹>安全选项卡>高级按钮 - 将所有者更改为您自己,即使它已经存在
- 选中“替换子容器和对象上的所有者”框 在您完成“更改所有者”对话框之前,可能不会显示此信息
- 打开
IISExpress
文件夹 - 右键单击
config
文件夹>安全选项卡>高级按钮 - 添加用户>添加主体
- 将位置更改为本地计算机(而不是域)
- 输入名称
NETWORK SERVICE
和“检查名称” - 按“确定”返回“高级安全性”对话框
- 确保选中“使用此对象中的可继承权限条目替换所有子对象权限条目”
适用于VS 2013和VS 2017的Windows 10中使用IISExpress 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”文件夹。
(我把这个解决方案放在这里,因为它是google登陆我的地方,所以其他人有这个错误信息可能会发现上面的解决方案没有为他们修复它,因此他们可能会遇到这个问题。)
我也在用户文件夹中加密的公司环境中,删除加密并删除IISExpress文件夹中所有内容的只读标志。
我在Windows 10上使用Visual Studio 2017并修复此问题我必须禁用OneDrive设置“保存空间并在使用时下载文件”。更改设置后,我的计算机崩溃,但重新启动后,我可以更改SSL已启用,一切正常。
对任何人用谷歌搜索这个;这可能与此问题相同: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。如果存在结果为0xC0190052的CreateFile条目作为最后一个条目之一,那么这是同一个问题。
C:用户 XXXXXX 文档 IISExpress 设置的applicationHost.config
取消选中文件中的只读属性。它对我有用。
添加注册表项似乎有效,但是,在注册表项中使用环境变量则没有。在我的环境中,只有我们的文档目录被重定向,所以我只想将IIS Express配置目录向上移动到%USERPROFILE%目录。但是,这没有用。 IIS Express从字面上读取环境变量,当然无法运行。
之前我遇到过同样的问题,以管理员身份运行Visual Studio(以管理员身份运行)解决了这个问题。
我也遇到了问题,并试图通过在HKCU Software Microsoft中设置注册表项来解决此问题。
我犯的错误是使用HKCU,因为我没有权限通过普通帐户(我用来运行visual studio)编辑注册表,我使用的是管理帐户。当然,HKCU就是为了那个账号。
所以我只使用了HKEY_USERS “我的普通用户的SID”,当手动启动iisexpress.exe时,它在指定的位置创建了它的文件。仍然没有用的是使用visual studio的iisexpress。似乎VS根本没有使用注册表设置。
最后,我在HKU “我的普通用户的SID” Software Microsoft Windows CurrentVersion Explorer 中为Shell文件夹个人和用户外壳文件夹个人设置了一个非UNC路径。
以上是关于IIS Express 8 - 无法写入配置文件的主要内容,如果未能解决你的问题,请参考以下文章
VS2015 无法启动IIS Express Web服务器(已解决)
win7下面用IIS部署系统,出现web.config无法写入配置文件
无法让 IIS Express 8 beta 将网站作为 64 位进程运行