ASP.NET HTTP错误500.19 "无法读取配置文件"

4
我有一个非常令人沮丧的问题。我有一个ASP.NET网站,我使用IIS Express进行开发。最近,我将我的项目文件从usb驱动器移动到我的Dropbox文件夹中,以避免携带驱动器。
在将我的项目移到Dropbox文件夹后,我遇到了这个错误,即IIS无法读取我的配置文件。我注意到路径指向我的usb驱动器。因此,我将我的web.config复制到错误消息中显示的路径上,然后它再次工作了。如果我再删除一次,错误就会再次出现。
所以我认为,在我的项目中某个地方,有一个配置设置指向我的usb驱动器,虽然它应该指向我的本地Dropbox文件夹。
我附上了错误截图:

模块IIS Web Core 信息未知 处理程序仍未确定 错误代码0x80070003 配置错误 配置文件无法读取 配置文件 ......... 请求URL ........... 物理路径 身份验证方法仍未知 已认证用户仍未知 调试路径 ..................


你不能在整个解决方案中搜索吗? - VikciaR
我尝试过,但到目前为止还没有成功。我也不知道该寻找什么,我搜索了web.config、路径、位置等,但结果并没有什么帮助。 - LeonidasFett
4个回答

3

哎呀,我已经寻找答案超过2个小时了。我试着清理每一个垃圾桶、.vs文件夹,但这些都没有帮助我。

最终,我通过在IIS管理器中重新显示(重新绑定)项目路径来解决了这个问题。


2

我曾经在尝试从保存在Dropbox中的另一台计算机上创建的项目启动服务时遇到了这个问题。

在项目文件夹中,有一个文件PROJECTFOLDERNAME/.vs/config/applicationhost.config

在那个文件中,有一个XML格式的站点列表,如下所示:

<sites>
    <site name="WebSite2" id="2">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Users\WRONGPATH\Dropbox\Website2\src\Website2" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:64655:localhost" />
        </bindings>
    </site>
    <site name="WebSite4" id="3">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Users\Nick\Dropbox\Website3\src\Website3" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:64655:localhost" />
        </bindings>
    </site>
    <siteDefaults>
        <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
        <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
    </siteDefaults>
    <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
    <virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

virtualDirectoryphysicalPath更改为正确的路径。我仍然面临的问题是,我在两个不同的位置工作这个项目,我不想一直来回更改。


我在研究ASP.NET MVC Core中类似问题的解决方案时,发现了你的答案。看起来在ASP.NET MVC Core中仍存在相同的问题。感谢你提供的解决方案。 - Francis

1
当我将“我的文档”文件夹移动到其他位置时,遇到了这个问题。IIS Express仍指向旧路径。我唯一能解决这个问题的方法是重新安装IIS Express。
  • 卸载IIS Express
  • 删除包含配置文件的“IIS Express”文件夹。
  • 安装IIS Express

0
通过更新虚拟目录/高级设置/登录类型 = 批处理(而不是网络),解决了我的问题。
<virtualDirectory 
    path="/extractions" 
    physicalPath="\\data.myspector.com\data\ExecResults" 
    userName="MySpector.com\Admin" 
    password="[enc:IISCngProvider:2Wewwm4zL0+BeTbjR1dE/FM0i6g4GpoGt0IBHBfknBdklddXYYYBNbb3uDn0c6abzW8ZV1xGFu8TegyDNgmds7egqd54A==:enc]" 
    logonMethod="Batch"  <<<<<<<<<<<<<<<<<<<
    allowSubDirConfig="false" />

此外,在将Apache迁移到IIS时,要注意网络文件夹中斜杠的上下文:Apache使用/,而在IIS上的物理路径必须使用'\'。
另外,如果您是公司内部人员,请检查域名并添加绑定(但这不完全是为了解决此特定错误,而是为了解决404错误)。
最后一个帮助您进行故障排除的提示是:在服务器机器的IIS管理器中点击浏览按钮,因为网页会显示更详细的信息,如果您从另一台机器进行测试,这些信息将被隐藏以保证安全。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接