Asp.Net正在寻找错误的web.config

时间:2015-09-12 02:19:50

标签: asp.net visual-studio

我有一个奇怪的问题 - 到目前为止,我只在一台机器上使用过这个应用程序。我已将asp.net网络应用程序下载到客户办公室的开发计算机上。

当我尝试通过Visual Studio在调试模式下运行应用程序时,我收到500.19错误 - 通常这意味着权限问题。在我注意到它正在寻找配置文件的目录之前,我经历了检查权限的动作。

'配置文件'错误显示是

\\?\C:\Users\{my-name}\Documents\{project-name}\web.config
  • 但是正确的位置实际上是

    C:\用户\管理员\文件\项目\ {项目名称} \的web.config

有谁知道指定了Web配置的位置?我一直以为它只能在根目录中。

4 个答案:

答案 0 :(得分:5)

事实证明,原因是升级到Visual Studio 2015.

新的Visual Studio不是.suo文件,而是具有特定于项目实例的文件的.vs文件夹。开发站点的根目录包含在此处。

我删除了这些文件并将.vs / *添加到我的.gitignore文件中,并且没有更多问题。

答案 1 :(得分:1)

在我们的基础结构中,事实证明,在带有节点<system.webServer>的web.config内部,我们有一个名为<rewrite />的嵌套节点。 IIS无法识别那个。

通过删除该节点或安装缺少的功能(url-rewrite),应用程序将按预期方式启动。

答案 2 :(得分:0)

假设您的意思是Documents\projects\{project-name}\web.config而不是Documents\projects{project-name}\web.config,您会看到应用范围的影响。

在IIS中,多个完全独立的Web应用程序可以通过拆分为“应用程序作用域”而成为同一网站的一部分 - 通常通过指定作用域根目录的前缀路径(IIS7之前的应用程序作用域)来工作可以是物理或虚拟目录,因为IIS7它们总是虚拟目录,但仍然可以代表物理目录。)

打开IIS管理器并选择Visual Studio为项目创建的(虚拟)目录,然后在左侧导航窗格中右键单击它并选择“转换为应用程序”,然后ASP.NET将查找Web。仅在此文件夹中配置文件(以及bin目录),而不是网站根目录。

请注意,网站根目录也被视为应用程序范围根目录,因此常见错误消息“Exception in”/“application”。如果你在另一个应用程序根目录中获得YSoD,你会在“/ subFolder”应用程序“消息中看到”Exception。

答案 3 :(得分:0)

就我而言,IIS中的顶级网站的物理路径为:

C:\Users\MyUserName\Documents\My Web Sites

出于某种原因,这意味着IIS拒绝查看其他任何地方,即使我的项目已转换为应用程序。

修复我:

  1. 转到IIS
  2. 右键点击顶级网站(即“默认网站”,或同级别有问题的网站)
  3. 选择“管理网站&gt;高级设置'
  4. 将物理路径更改为C:\inetpub\wwwroot
  5. 保存并重新加载网站
  6. 然后,我可以为我的应用程序提供任何路径,IIS可以按预期进行操作。