创建虚拟目录失败,错误:无法写入配置文件applicationhost.config

时间:2018-05-11 21:45:00

标签: visual-studio-2017 windows-10

我只是想打开一个VS 2017项目。当我打开解决方案时,我收到以下错误消息:

使用以下错误创建虚拟目录http://localhost:58051/failed:文件名:\?\ C:\ Users \ Visual Studio 2017 \ Projects \ Testing \ Version 2.0.vs \ config \ applicationhost.config错误:无法写入配置文件

我已检查文件路径中的文件夹,但未加密。文件路径中的所有文件夹都有一个用于“只读”属性的黑框。当我转到配置文件夹并清除“只读”属性的黑色框和“应用”设置时,我发现如果我退出并返回到同一文件夹,则黑盒子会再次显示为“只读”属性。我已经读过黑盒子并不意味着已经打开了Read Only属性。如果实际启用了“只读”属性,我应该会看到一个复选标记。但是,这并不能解释为什么我无法打开解决方案。

单击确定按钮到VS错误消息后,VS在解决方案资源管理器中说解决方案是“(不可用)”。

非常感谢任何帮助。

9 个答案:

答案 0 :(得分:12)

我在OneDrive上的项目文件也遇到了这个问题。解决问题的方法是重命名了根项目目录“ .vs \ config”目录中的applicationhost.config文件,然后重新加载了Web项目。这将创建一个新的applicationhost.config文件。

答案 1 :(得分:7)

我通过OneDrive在两台计算机之间共享项目时出现了相同的错误消息,并修复如下:

1 - 关闭VS.Net

2 - 在记事本中打开 [myappnamefolder] .vs \ config \ applicationhost.config

3 - 在我的错误消息中搜索了打开文件中的文件名(在您的情况下 C:\ Users \ Visual Studio 2017 \ Projects \ Testing \ Version 2.0.vs \ config \ applicationhost.config )。

system.applicationHost,sites,site name,application path,virtualDirectory - physicalPath

下找到

4 - 修改 physicalPath 值以指向项目配置文件的有效路径,如上所述。

5 - 保存 applicationhost.config 文件

我的路径不同,因为我在每台机器上都有不同的家庭用户目录。 (用户A和用户B)

答案 2 :(得分:1)

我多次将VS 2017与Onedrive一起使用时遇到此问题。通过重命名application.config并让VS重新创建它来解决它。同样可以在文件中编辑行。参见下面的差异示例。

Image showing diff between original and recreated applicationhost.config

配置文件位于 C:\Code\MyProject\.vs\config\.

之类的位置

答案 3 :(得分:0)

我刚遇到此错误。我按照此答案中的步骤操作:https://stackoverflow.com/a/50508207/1166163

当我尝试保存更改时,我意识到TFS已将该文件标记为只读,从而阻止VS更新该值。删除只读属性可以解决此问题。

答案 4 :(得分:0)

以上都不对我有用。我最终删除并重新克隆了给我带来麻烦的存储库。然后打开就好了。

答案 5 :(得分:0)

Windows 10 Defender为我造成了这种情况。当我禁用控制文件夹访问时,它又可以工作了。奇怪,因为它已经启用该设置一段时间了。

答案 6 :(得分:0)

我已通过以下方式解决了此错误:

步骤1: 沿着那条路走 C:\ Users \ navz \ OneDrive \ Documents \ IISExpress \ config

STEP2: 当您到达此文件夹“配置”时 在此文件夹中,我们可以看到“ applicationhost ”文件

STEP3: 关闭Visual Studio现有项目并删除 applicationhost 文件(请参见第2步的路径)

然后再次打开现有项目,它将自动重新加载并正常工作。

答案 7 :(得分:0)

遇到相同的问题,然后调查了vs \ config \ applicationhost.config并对其进行了加密。我未加密的文件和解决方案都没有问题。

答案 8 :(得分:0)

我的驱动器是不同的-但是主要代码库是在两台计算机之间共享的-所以其中一台在d驱动器中-因此我将第二台计算机上的父子目录映射为d驱动器...然后在两者上使用相同的路径...我只需要从第二台计算机上的d驱动器中打开解决方案