打开网址的方式也有讲究

今天遇到了一个小小的错误,却花去了不少的时间,比较郁闷,最后在不经意间解决了。

  这两天正在做一个类似教务系统的管理软件,其中有些东西和之前做的新闻发布系统类似,就想着在这基础上改造下后拿来用,可运行新闻发布系统时,

总是弹出一个配置文件的错误,提示“在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚

拟目录配置为应用程序,则可能导致此错误。······ ”,上网搜了很多的资料,都没有解决。看到IIS就想到可能是之前网站发布才导致的错误,于是删除了发布

的网站,最后连IIS都卸载了,问题依旧没有得到解决。

  能想到的办法都用了,剩下的就差研究配置文件了,索性暂时放下这个错误不管了,一顿午饭回来,不甘心的我又打开了,再次运行时居然不报错了,欣喜

之余开始找问题根源,原来问题出在我打开网站的方式上。

  网站源码总共包括四个文件夹:分别是Web、Bll、Dal、Entity。我起初在vs中打开网站选择的是这四个文件夹的上一个目录文件夹,也就把这四个文件夹

全部包含在内,打开后在vs资源管理器中显示如下图:

  而我成功运行打开的是Web这个文件夹,如下图:

  对二者进行了对比后,再回过头看出现的错误,不难看出网站并不是指项目中的所有文件,而是指包含界面的那一个文件夹或多个,其余的只是网站的

组成部分,这是我的个人理解。

  在网上找到了一篇文章,《比较虚拟目录和应用程序》其中有一段是这样说的:

  虚拟目录和应用程序是两个非常容易混淆的概念。但是在IIS 7.0中,虚拟目录和应用程序是截然不同的两个概念。应用程序是一个逻辑边界,这个

逻辑边界可以分隔网站及其组成部分。虚拟目录则是一个真实的指针,这个指针指向了一个本地或远程物理路径。虚拟目录总是存在于应用程序之中,一

个应用程序可包括多个虚拟目录。

  结合我自己的项目,应用程序是指包含了所有项目文件(Web、Bll、Dal、Entity);而虚拟目录仅仅是Web这个文件夹,并不包含Bll等文件夹,bll等文件只是网站的组成部分。

  所以我打开网站时只需打开Web(虚拟目录)这个文件夹即可,其他的会被vs当成组成部分而加载进来,如果把所有的文件全用网站形式打开,vs会默认所有文件都是虚拟目录,运行时却发现是应用程序而报错。

原文地址:https://www.cnblogs.com/weihengblogs/p/2740972.html