IIS Express-500.19无法读取配置文件-因为它正在查找错误的路径

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

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

模块-IIS 网络核心
通知-BeginRequest
错误代码 -0x80070003
配置错误-无法读取配置文件
配置文件-? d: TFS Systemstfs companydomain.com Dev Flowers web.Config
请求的 URL-< a href = “ http://localhost: 59729/Flowers/wsBusinessLayer/InformationServices.asmx”> 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,错误路径,无法读取配置文件,以及这些术语的各种组合

但是运气不好,以前有人碰到过这个吗?

72245 次浏览

结果我不得不用以下方式编辑 %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" />

我不知道这个文件是如何被“正确地”修改的,但是手动编辑它工作得很好。

下面是另一个不涉及 寻找 applicationhost.config文件的可能解决方案:

  • 右键单击 Web Project > Web > Project Url > (例如“ localhost: 5459”) ,然后单击 增加端口号,它将强制在该文件中添加一个新条目。

在我的情况下,我还需要改变认证模式,可以通过:

  • 选择 WebProject > 按 F4 > 根据需要设置 Windows 身份验证(在我的示例中已启用)。

在我的例子中,以下更改解决了这个错误:

[SolutionFolder]>.vs[Hidden Folder]打开 applicationhost.config文件,并将 windowsAuthentication部分中 overrideModeDefault属性的值从 否认改为 允许。如下所示。

更改 MVC 项目上的端口号解决了我的问题。我绕了一个多小时的圈子想找到答案。谢谢你,音速之魂。

当一个小小的调整就能修复一些严重损坏的东西时,我总是很惊讶。

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

Project Properties > Web > Project Url

使用 VisualStudios 2015。

我在 IIS 8.5(不是快递)上得到了相同的错误

对我来说,这是因为我用一个副本替换了文件夹,并在 IIS 运行时重命名了它。出于某种原因,它一直出错。我必须从 IIS 删除网站定义,并重新添加它得到它的工作。

如果使用的是 LocalIISWebServer,请重命名自定义虚拟目录,然后保存并再试一次。在此之后,您可以放回原来的名称。

在我的例子中,错误的路径被记录在。我从同事那里收到的压缩文件夹。通常,我通过源代码库获取源代码。没有登记。

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

在我的例子中,我收到了一台新机器,但是当我尝试运行源代码(从旧机器复制)时,得到了这个错误。 从源代码目录下的. vs. config 文件夹中删除 applicationhost.config 文件解决了这个问题。

今天也有同样的问题。

导致问题的改变

将功能从单独的控制器移动到主控制器。 我将一个视图及其背后的功能从 控制器“ X”移动到 < strong > HomeController

问题的性质

  1. 通过 IIS Express/Visual Studio 运行时,一切都正常
  2. 在本地部署到 IIS 时,一切都很正常。
  3. 当部署到 Deployment 机器时,地狱就会爆发。
  4. 如果我在部署机器的 IIS 中部署到 「新网站」,则可以正常工作。

修好

  1. 从 IIS 中删除 Site/application pool 实例。
  2. 重现他们。
  3. 展开。

在我的例子中,我将路径中的 ..替换为一个普通的文件夹路径。

DR

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

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

我知道,但它花了我一些时间才意识到,..是不受欢迎的 IIS (快速) ,因为它使您自己的路径出您的网站主目录。在我的例子中,它没有停止,但是我 猜猜看 IIS (Express)只是停止任何包含 ..的内容。

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

如果使用带有“共享文件夹”的虚拟机——我正在使用 Workstation Pro 来共享文件夹。当该项目是在“共享文件夹”,是托管在 HOST 个人电脑我无法运行该项目。我决定把项目移到“本地”驱动器上。

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

当我从我的同事那里得到代码的时候,我得到了这个错误,这个错误指向了她的路径。我尝试检查整个应用程序文件夹中的路径,但是不能。所以我又一次从不同的来源得到了代码,除了我的同事。

我的设置是。NET 4.6.1 MVC 项目作为 Azure 云服务托管。使用 VisualStudio2019和 IISExpress 在本地运行时出现此错误。我修正了错误。在我的案例中,这个错误是一个转移注意力的东西,是另一个问题的症状。对我来说,我必须删除对 System.http.net、 System.run 和 System 的引用。运行时间。InteropServices.然后我把这三个参考文献的最新版本加回到 Nuget。

问题是我的代码找不到这三个包。每次切换 git 分支时都会遇到查找包的问题,但这是一个完全独立的错误,我仍在努力解决这个问题。我找出问题所在的方法是运行代码并查看 VisualStudio2019中的“ build”和“ debug”输出。我看到了与无法找到 System 的代码有关的错误。哈哈。所以我修正了这个错误,然后看到了其他软件包的错误并修正了它们。真正的问题是我的代码出现了异常并且没有正确运行,它只是碰巧显示为这个500.19错误。

另一个可能的影响因素是,我在当天早些时候禁用了“只是我的代码”。这似乎使我的代码在遇到异常时不会中断。一旦我重新打开它,当发生异常时,我的代码就会中断,这也帮助我找到了问题的原因。要找到这个选项,进入工具 > 选项 > 调试 > 常规 > “启用我的代码”。

原始错误: enter image description here

对我来说,这是因为我重命名了一个路径文件夹,并从 github 获得项目。 去

Right click on your startup project > project properties > Web > click on Create Virtual Directory

它用新的虚拟目录替换了旧的虚拟目录。

enter image description here