HTTP错误500.19 - 无法读取配置文件

问题描述 投票:22回答:9

在我的一个ASP.NET应用程序中,由于下面显示的错误,突然之间我无法在Visual Studio 2013中运行它。它似乎试图从一个甚至不存在的路径打开web.config。我的所有项目代码(包括web.config)都位于C:\ Projects \ SourceCode \ AFEManager \ Trunk \ AFEManager.Web下。我在这里找到了许多用户遇到类似错误的帖子,但解决方案似乎有所不同,到目前为止我找不到的任何内容似乎都适用于我的情况。我查看了TraceLogFiles目录和最近的日志文件有五天的时间,所以它显然没有记录任何东西,因为我遇到了这个问题。任何建议表示赞赏。

c# asp.net web-config visual-studio-2013 iis-express
9个回答
20
投票

在我的情况下,我删除了D:\ My Documents \ My Web Sites \中的所有文件夹然后我发现错误我的解决方案文件夹中有一个文件.vs \ config \ applicationhost.config它包含对已删除文件夹的引用。因此,我删除了applicationhost.config,然后在我的项目属性网页中按下了“创建虚拟目录”按钮。它重新创建了文件和文件夹


19
投票

即使我不能说我完全理解所有细节,我也能够解决这个问题。我会尝试用我理解的最好的方式来描述这种情况,并希望有更深入了解的其他人可以进一步澄清。

在我的工作站上进行了所有开发之后,有人建议我开始在为我设置的新VM环境中完成这项工作。所以我在那里安装了VS 2013并从那里复制了各种项目的源代码。但是,而不是遵循我之前的C:\ Projects \ SourceCode [ProjectName]的本地路径约定...这次我决定使用在VS安装期间设置的目录,c:\ users [MyUser] \ My Documents \ Visual Studio 2013 \ Projects [ProjectName]。不久之后,我们的基础架构团队进行了更改,以便我的主目录c:\ users \ rmayer现在指向一个公共网络驱动器,\ totalsafety \ TSUsers \ rmayer。一切都继续工作,没有任何问题。

但是,由于我在这个VM环境中工作的各种困难,我决定使用我的源代码的原始本地路径返回到我的工作站上进行开发工作。这是当我尝试通过VS运行我的代码时,我开始遇到上述错误的时候。我开始学习的是IIS Express使用的applicationhost.config文件位于:\ totalsafety \ TSUsers \ rmayer \ My Documents \ IISExpress \ config。它包含我的每个Web项目的条目;与此问题相关的部分有一个看起来像这样的部分:

        <site name="AFEManager.Web-Site" id="8">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="C:\Users\rmayer\Documents\My Web Sites\AFEManager.Web-Site" />
            </application>
            <application path="/AFEManager" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="C:\Projects\SourceCode\AFEManager\Trunk\AFEManager.Web" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:19257:localhost" />
            </bindings>
        </site>

当时在applicationPool =“Clr4IntegratedAppPool”下列出的物理路径属性是根据我在VM环境中工作时使用的本地路径设置的。现在,无论我是在本地工作还是在VM中工作,由于移动了用户的主目录,这个文件都被共享,当我在工作站工作时,此路径无效。通过将此路径更新为C:\ Projects \ SourceCode \ AFEManager \ Trunk \ AFEManager.Web,它现在可以从我的工作站正常工作。

同样,我对这应该如何工作有一个有限的理解,但它告诉我的是,我将无法从多个环境(不是我想要的更多)进行开发工作,除非本地路径在所有环境之间保持一致他们如果我对此是正确的,这似乎是一个不太理想的设计。


6
投票

我更改了解决方案文件夹中vs \ config \ applicationhost.config中的虚拟目录路径。


5
投票

当我将项目文件夹移动到新机器时,我遇到了这个问题。问题是VS在applicationhost.config文件夹中的配置文件(.vs/)中注册了站点,但没有在%USERPROFILE%\My Documents\My Web Sites\中创建文件夹。如果您只是在项目属性(Web选项卡)中单击“创建虚拟目录”,那么这将是不够的。

  1. 首先关闭VS并删除解决方案目录中的.vs/文件夹
  2. 重新打开VS并单击项目属性(Web选项卡)中的Create Virtual Directory - VS将再次注册该站点并在%USERPROFILE%\My Documents\My Web Sites\中创建相应的文件夹

2
投票

在我的情况下,项目位于网络而不是我的本地磁盘。将项目复制到本地后,问题得以解决。希望它可以节省一些有同样问题的时间。


2
投票

您可以将web.config的路径更改为applicationhost.config文件中的实际路径。该文件位于/.vs/config文件夹中。

更改此文件中的路径后,保存并重新启动项目,它解决了我的问题。

发生这种情况是因为我有不同的工作站,但项目正在保存在不同的文件夹中。


0
投票

谢谢PongGod !!我无法对你的答案发表评论,但我想发帖,因为我在运行Orchard的实例时遇到了完全相同的问题。在我的情况下,一切都运行良好,直到我发现一堆旧的项目文件位于:

%USERPROFILE%\My Documents\My Web Sites\

并开始删除它们没有明显的理由。然后我尝试在调试模式下从Visual Studio启动Orchard并收到上面的错误消息。将相同的修复程序应用于我的applicationhost.config文件后,一切正常。

在我的情况下,我假设目录混淆了,因为我最初从Visual Studio和Web Matrix运行默认的Orchard文件。然后,我下载了完整的源文件,并开始从一个完全不同的目录运行文件。再次感谢。


0
投票

我遇到了同样的问题,我很简单地解决了这个问题。我的问题出现在我在git存储库中执行合并操作之后,在合并操作之后Visual Studio有些如何将我的默认项目URL更改为我的伙伴计算机的默认URL,从最后一次推送到我的存储库。所以这是我如何解决这个错误:

  1. 只需转到项目的属性即可。
  2. 从左侧垂直对齐的菜单中,选择Web。
  3. 在Project url和包含默认端口号的文本框之后,现在只需将该文本框放在一边,就会出现一个“创建虚拟目录”按钮。
  4. 按下那个按钮就可以了。它将再次将默认URL指向项目的当前工作文件夹。

希望它适合所有人:)


0
投票

这是我找到的解决方案。

https://gyorgybalassy.wordpress.com/2015/03/06/i-asked-for-a-vs-folder-and-the-vs-team-gave-it-to-me/

(1)在| YourSolution | \ .vs \ config中找到applicationhost.config文件

enter image description here

(2)修改VirtualDirectory PhysicalPath到您的项目。

(3)重启解决方案。开始项目。

(4)如果它仍然无法正常工作,请尝试检查IISExpress配置中的设置。如果没有站点设置,请将设置复制并粘贴到| UserOnYourComputer | \ Documents \ IISExpress \ config \ applicationhost.config

enter image description here

(5)将id更改为IISExpress applicationhost.config中未使用的其他id。

(6)开始你的项目。

© www.soinside.com 2019 - 2024. All rights reserved.