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

Pon*_*God 24 c# asp.net web-config iis-express visual-studio-2013

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

在此输入图像描述

Mir*_*Boy 22

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

  • 删除.vs文件夹对我有用 (4认同)
  • 谢谢!我被要求重新访问我去年制作的应用程序,我遇到了这个问题。我已将应用程序移至另一个文件夹以提交源代码管理,但它抱怨在不再存在的文件夹中找不到 web.config (我什至没有,而是有一个 appsettings.json)。你节省了我很多时间! (2认同)

Pon*_*God 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>
Run Code Online (Sandbox Code Playgroud)

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

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

  • 这是一个很好的暗示.我们克隆了一台机器,然后重命名了物理文件夹以匹配环境.忘了更新下面的虚拟应用程序的路径. (2认同)

dzi*_*kik 8

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

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

  • 谢谢,删除 .vs 文件夹解决了我的问题 (3认同)

小智 7

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