首页 > 代码库 > IIS Server Error in '/' Application

IIS Server Error in '/' Application

我出现的问题:

如仅靠标题中的句子是无法确定是那种错误的,

在上图中能标志错误的是

Parser Error Message:Could not load type "WebProjectTest.Test".

这句就我的理解,

大概意思是:解析器给你的一个错误消息:不能加载类型“WebProjectTest.Test".

显然引号里面是一个路径吧,

看看

Source Error(资源错误):

注意看到第一行是红色的,说明问题就在这里。

对于一个初学者出现这样的问题应该怎么办?

不慌我们一步一步的来分析:

第一,我们能确定的是那行红色代码的即:

Line 1:  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="WebProjectTest.Test" %>
有错,
这行代码一般是看不懂的(初学者)放心看看下面或许我们就会懂了。
下面会用“红色代码”的称呼来标志上面的代码。

我们必须要理解这行代码,不然问题很难解决,我首先想到了帮助文档(注意不是百度,过于的依赖百度,Google等搜索引擎,会惯坏我们滴,或许它能很快的解决

我们发生的错误但一些实质性的东西是看不到的,虽然你也在看这篇文章,嘻嘻),

微软帮助文档网站:http://search.msdn.microsoft.com/search/zh-CN/default.aspx

 因为我看到Page这个词,开始学一般会知道它是一个类,所以我就查询它

通过这个页面也可看到Page类,但是你点进去后会发现,找不到在红色代码中的像Language,Inherits的关键字,

但是细心的我们会发现在下面居然有个@Page,点点试试呢,因为在那个红色代码中也有@Page,或许查Page根本就是理解上的错误。

点入@Page那个之后,哈哈我们就看到了在红色代码中出现的单词了,其实就是属性。

现在我们一个一个属性的找看看它们对应是什么功能。

当我们看到CodeBehind属性的时候,就知道有戏了问题可能就出现在这里:

CodeBehind属性的说明居然说:指定包含与页关联的类的已编译文件的名称。该属性不能在运行时使用。

应改用 CodeFile 属性指定该源文件的名称,同时使用 Inherits 属性指定该类的完全限定名称。

那我们就将CodeBehind属性改成CodeFile属性试试呢(注意保存)。

然后再在IIS中运行你修改了@Page属性的网页,哈哈,出现了。

总结:

1,学会使用帮助文档,要减少对一定工具的依赖。

2,要学会思考解决问题的思维模式,要相信自己,一定能通过自己的能力独立完成这个问题的解决,获取会耗费更多的时间,

但我保证你所学习到的知识一定会远远超过这个问题的解决方法,或许你以后会的不是解决这个问题,而是这类问题。

3,利用控制变量法解决问题。

4,要学会弄出一定问题来自己解决(或者这与上面无关但我的大脑就闪现了这个结论,你的总结不一定就是一定知识的总结,只要大脑

中显示出了一些具有意义的方法就行,比如写代码,在初学的时候,学的比较好的人或许都不知道一些异常窗口是什么,都是同学出现了这些

问题,才知道会出现这种窗口的,所以利弊总有吧。)

5,一般新建网页中@Page有CodeFile属性,新建项目中@Page有CodeBehind属性。

说明:

我简单说一下我处理这个问题的流程,

这个问题是产生在偶然。

我原本有个练习的时候写的小网站只有几十行代码,我用的是新建项目,用iis打开浏览网页的时候就出现了上诉问题,

然后我就 用一个用新建网站的方式生成的小网站,用iis打开浏览网页时正常的。

所以猜测:

新建项目,不能直接用iis打开其中的网页,

新建网站,能直接用iis打开其中的网页,

也能得到一些隐藏信息:iis的设置可能是正确的。这点很关键。

(思维方式,对比法,新建网站与新建项目不就是很鲜明的对比么?为啥我会想到新建网站与新建项目对比或许与经验有关吧

1,我一直很纠结新建网站与新建项目有啥不同,2,经验告诉我,我就没有新建项目成功弄好过iis,而新建网站弄好过)

有猜测当然就要论证:

要论证肯定要设计论证方案:

注意到小网站虽小(网站小,但也可能是那几十行代码的问题,要将这种可能尽早的扼杀在摇篮里,而且如果猜测错误,也能得出可能与这几十行代码有关涩),但可能就是有一些不必要的元素影响的我论证,所以我分别采用新建项目和新建网站的方式建立了最简单的模型。

(思维方式,模型化,我们将我们研究的对象抽象到最纯净的状态,目的是为了防止一定不必要的因素影响测试)

(思维方式,分析法,注意到有猜测就要有论证,有论证就要有论证方案(即实验),这两句就是有点儿像数学上的分析法证明不等式,思路就非常流畅的衔接过去了)

最后我实验结果是:

新建的新建项目,iis运行后,显示了我们最面研究的情况。

新建的新建网站,iis运行后,正常。

结论:

新建项目的某些因素触发了问题的产生。

对比法,

猜测,1,配置文件问题,2,窗体文件问题。

比较各自的代码后,发现窗体文件的@Page中的某些属性不用。

属性变换后就能成功。

我现在讲的这么和最上面讲的流程不同了?

对,这里就是我犯了严重的错误,我没有分析页面弹出来的错消息。

而凭经验来花时间猜测论证等。

再总结:

处理问题就像做实验一样,你需要不断的

操作   分析,猜测,论证,结论。这里考察了很强的逻辑能力。

或许上面的操作 步骤不全面,但会随着经验来不断的完善这些步骤。

解决问题是一种思维的体现。