【问题标题】:IIS Express - 500.19 Cannot read configuration file - because it's looking at the wrong pathIIS Express - 500.19 无法读取配置文件 - 因为它正在查看错误的路径
【发布时间】:2016-01-21 11:41:26
【问题描述】:

我最近将我的根 TFS 文件夹从 D:\TFS\systemstfs 重命名为 D:\TFS\sys,因为项目的路径之一对于 Windows 来说太长了。现在,当我尝试使用 IIS Express(项目 URL http://localhost:59729/Flowers/wsBusinessLayer/)在 VS2013 中运行不同的项目(D:\TFS\sys\companydomain.com\Dev\Flowers\wsBusinessLayer)时,我在浏览器中收到以下错误消息:

HTTP 错误 500.19 - 内部服务器错误
请求的页面无法访问,因为该页面的相关配置数据无效。

模块 - IIS Web 核心
通知 - BeginRequest
错误代码 - 0x80070003
配置错误 - 无法读取配置文件
配置文件 - \?\D:\TFS\systemstfs\companydomain.com\Dev\Flowers\web.config
请求的 URL - http://localhost:59729/Flowers/wsBusinessLayer/InformationServices.asmx
物理路径 - D:\TFS\sys\companydomain.com\Dev\Flowers\wsBusinessLayer\InformationServices.asmx

(强调我的,D:是我机器上的第二个硬盘,不是网络共享)

我很清楚问题出在哪里(配置文件路径错误),但我不知道如何解决它。我试过了:

  • 启用“在抛出 CLR 异常时中断”
  • 从 TFS 重新获取解决方案
  • 正在重新启动
  • 切换到使用 IIS,然后返回到 Express
  • 谷歌搜索 500.19、0x80070003、路径错误、无法读取配置文件以及这些术语的各种组合

但是没有运气。有没有人遇到过这种情况?

【问题讨论】:

    标签: .net iis-express


    【解决方案1】:

    这是另一个可能的解决方案,不涉及fishing for the applicationhost.config file

    • 右键单击 Web Project > Web > Project Url >(例如'localhost:5459'),然后增加端口号,这将强制在该文件中输入新条目。

    在我的情况下,我还需要更改身份验证模式,可以通过以下方式完成:

    • 选择 Web 项目 > 按 F4 > 根据需要设置 Windows 身份验证(在我的情况下已启用)。

    【讨论】:

    • 增加端口号有效!我认为在我的情况下,我最初尝试在没有先创建虚拟目录的情况下在新机器上运行该项目,并且可能某些内容已损坏。即使我随后创建了目录,我也收到了这个错误。增加端口号解决了它。谢谢!
    • 这是重命名项目后最简单的解决方案
    • WTF!非常感谢,很抱歉我不能给你两票。
    • 我认为这是因为我重命名了我的项目,所以我的 dll 也被重命名了。更改端口号成功了,谢谢!
    • @JeremyRayBrown 呵呵是的。旧的“用扫帚柄打它”修复
    【解决方案2】:

    原来我必须通过以下方式编辑%USERPROFILE%\Documents\IISExpress\config\applicationhost.config -

    <configuration>
      <system.applicationHost>
        <sites>
          <site name="wsBusinessLayer">
            <application path="/">
               <virtualDirectory path="/Flowers" physicalPath="D:\TFS\sys\companydomain.com\Dev\Flowers" />
    

    我不知道如何“正确”更改此文件,但手动编辑它工作正常。

    【讨论】:

    • 这是 Visual Studio 2013(及更低版本)使用的全局配置文件。 VS2015 使用每个解决方案的配置文件,但如果您更改源代码路径,仍需要手动编辑该文件。
    • 我认为在 WebApplication 的 .csproj 文件中编辑某些内容时,它会通过其他 TFS 成员进行编辑
    • 对于遇到此问题的用户,applicationHost.config 文件位于 C:\Windows\System32\inetsrv\config
    • Visual Studio 2019 现在将applicationhost.config 存储在用户项目文件中,请参阅stackoverflow.com/a/12946477
    【解决方案3】:

    在我的情况下,错误的路径记录在我从同事那里收到的 zip 中的 .vs 文件夹中。通常,我会通过未签入 .vs 的源存储库获取源代码。

    删除 .vs 文件夹为我解决了问题。

    【讨论】:

    • 谢谢!只删除我的.vs\config\applicationhost.config 效果更好
    • 这与编辑它并正确设置值的作用相同(如上面的答案)。实际上,只需将其删除并使其以有效状态生成会更容易。
    • 为我做到了.. 可怕的 .vs 文件夹再次损坏
    【解决方案4】:

    就我而言,以下更改解决了此错误:

    [SolutionFolder]&gt;.vs[Hidden Folder] 打开applicationhost.config 文件并将windowsAuthentication 部分中overrideModeDefault 属性的值从拒绝 更改为允许。如下图。

    【讨论】:

    • 传奇!我不得不更改“virtualDirectory”applicationhost.config。我什至不知道它存在于 .vs 文件夹中。
    • 非常感谢。我不知道iis express在解决方案目录下创建另一个配置文件!
    【解决方案5】:

    更改我的 MVC 项目的端口号解决了我的问题。我绕了一个多小时寻找答案。谢谢索尼克之魂。

    当一个微小的调整可以修复严重损坏的东西时,它总是让我感到惊讶。

    我增加了端口号,错误神奇地解决了。

    Project Properties > Web > Project Url 
    

    使用 Visual Studios 2015。

    【讨论】:

      【解决方案6】:

      如果您使用的是本地 IIS Web 服务器,请重命名自定义虚拟目录,保存并重试。之后,你可以把原来的名字放回去。

      【讨论】:

        【解决方案7】:

        如果使用带有“共享文件夹”的虚拟机——我使用的是 Workstation Pro 来共享文件夹。当项目位于主机 PC 上托管的“共享文件夹”中时,我无法运行该项目。将项目移动到“本地”驱动器为我解决了。

        【讨论】:

        • 这是我的确切情况。移动到本地文件夹,一切都很好,尽管这是一个恼人的限制。
        • 是的...谢谢。
        【解决方案8】:

        就我而言,我收到了一台新机器,但是当我尝试运行源(从旧机器复制而来)时出现此错误。 从源代码目录下的 .vs\config 文件夹中删除 applicationhost.config 文件解决了该问题。

        【讨论】:

          【解决方案9】:

          我在 IIS 8.5 上遇到了同样的错误(不是 express)

          对我来说,这是因为我在 IIS 运行时用一个副本替换了该文件夹并重命名了它。由于某种原因,它不断出错。我必须从 IIS 中删除网站定义并重新添加它才能使其正常工作。

          【讨论】:

            【解决方案10】:

            今天遇到了同样的问题。

            导致问题的更改

            将功能从单独的控制器转移到家庭控制器。 我确实将视图及其背后的功能从 Controller'X' 移动到 HomeController

            问题的性质

            1. 通过 IIS express/Visual Studio 运行时一切正常
            2. 在本地部署到 IIS 时一切正常。
            3. 部署到 Deployment 机器时会崩溃。
            4. 如果我部署到部署机器的 IIS 中的'新站点',工作正常。

            修复

            1. 从 IIS 中删除站点/应用程序池实例。
            2. 重新创建它们。
            3. 部署。

            【讨论】:

              【解决方案11】:

              在我的情况下,我将路径中的 .. 替换为普通文件夹路径。

              TL;DR

              我使用了我的脚本文件的相对路径的“聪明”技巧,因为我不想硬编码我的文件夹地址。

              "C:\Program Files\IIS Express\iisexpress.exe" /path:"%~dp0..\Lagardsdorren\bin\Debug\netcoreapp2.2\publish" /port:44342
              

              我知道,但我花了一些时间才意识到,.. 在 IIS(express) 中是不受欢迎的,因为它可以让你自己离开你的站点主目录。就我而言,它没有,但我 IIS(express) 只是停止了其中包含 .. 的任何内容。

              我不知道如何回到我聪明的相对路径,但这是另一个问题。

              【讨论】:

                【解决方案12】:

                我通过进入项目属性 > Web > 并单击“创建虚拟目录”解决了这个问题,然后我不必更改我的端口。

                【讨论】:

                  【解决方案13】:

                  我的设置是作为 Azure 云服务托管的 .NET 4.6.1 MVC 项目。使用 Visual Studio 2019 和 IIS Express 在本地运行时出现此错误。我能够修复错误。在我的情况下,错误是一个红鲱鱼,是另一个问题的征兆。对我来说,我必须删除对 System.http.net、System.runtime 和 System.Runtime.InteropServices 的引用。然后我用 Nuget 添加了这三个引用的最新版本。

                  问题是我的代码找不到这三个包。每次我切换我的 git 分支时都会遇到问题,但这是一个完全独立的错误,我仍在尝试解决。我找出问题所在的方法是运行代码并查看 Visual Studio 2019 中的“构建”和“调试”输出。我看到与无法找到 System.Http.Net 的代码相关的错误,所以我修复了它,然后看到了其他包的错误并修复了它们。真正的问题是我的代码出现异常并且无法正常运行,它恰好表现为这个 500.19 错误。

                  另一个可能的促成因素是我在当天早些时候禁用了“仅我的代码”。这似乎导致我的代码在遇到异常时不会中断。一旦我重新打开它,我的代码会在发生异常时中断,这也有助于我找出问题的原因。要找到此选项,请进入工具 > 选项 > 调试 > 常规 > “仅启用我的代码”。

                  原始错误:

                  【讨论】:

                    【解决方案14】:

                    我在从同事那里获取代码时遇到了这个错误,它指的是她的路径。我尝试检查整个应用程序文件夹中的路径,但不能。因此,我再次从同事以外的其他来源获得了代码。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2018-05-04
                      • 2023-04-06
                      • 2016-08-21
                      • 2017-01-21
                      相关资源
                      最近更新 更多