我在Visual Studio 2015中使用asp.net core& angular 2.我刚刚在visual studio 2017上升级了应用程序。问题是当我运行应用程序时出现以下错误:
我不知道我做错了什么或者问题是什么?任何人都能告诉我这是什么问题吗?
这是日志文件图像:
答案 0 :(得分:0)
似乎IIS无法访问web.config文件。我从错误页面了解到该网站位于另一个用户的文档文件夹下。以管理员身份运行visual studio可能会解决问题。
答案 1 :(得分:0)
在这种情况下,它让我想起了一段时间我偶然发现的错误 - 有一次我在清理我的硬盘时过于热心,第二次是在VisualStudio版本之间切换(2013/2015或类似的东西)。
事实证明,你在项目文件中拥有的东西不足以在IIS上运行它(显然 - 这是独立服务器,你必须配置它),但也不足以运行IIS Express(是的!)。 IIS Express有自己的applicationHost.config文件,VS为您创建和管理它(在某种程度上正确)。但是,并非全部。 VisualStudio还在Documents
文件夹下创建目录结构。如果我没记错的话,IIS Express会将这些文件夹视为您网站的根目录,并在其上安装了虚拟目录。
现在,有趣的部分:当IIS Express启动时,期望这些文件夹存在并检查那里的根web.config文件。几乎总是,web.config文件丢失了 - 这没关系,因为你不想要它们,你在虚拟目录中的应用程序中有它们。
但重要的是IIS Express 期望这些目录。通常它们是完全空的,但它们需要存在。如果它们不存在 - 您将收到500级错误,告诉您无法访问“web.config”文件。真正发生的事情是IIS Express无法检查文件是否存在,因为...目录无法访问。
查看您发布的错误屏幕。在它的中间,你有一行:
c:\users\zeshan.munir\documents\visual studio 2017\projects\restaurant\restaurant.web\web.config
去那里检查目录是否存在。我打赌它没有。也许你的VS2017没有创建“视觉工作室2017”。或者可能是restaurant\restaurant.web
存在于visual studio 2015
文件夹下但不在visual studio 2017
下。{/ p>
如果文件夹不存在 - 只需创建它们 - 它应该修复它。
我认为当你转到ProjectProperties和“Web”选项卡时,你也可以这样做,选择IIS Express作为部署目标,然后按“创建虚拟目录”(即使看起来它已经配置好了)。 / p>