ASP.NET FAQ

在我学习ASP.NET编程并第一次在项目中使用它的这段时间中,我遇到了各种各样的问题。学习过程是痛苦并快乐着,每当我解决了一个问题之后,心中都会升起喜悦之情,也正是这种心情促使我不断学习,不断克服一个又一个问题,最终完成项目。起初并没有时间把碰到的问题记录并整理出来,但是我相信这是一个好的习惯,最后我决定从今天开始坚持这样做。

Q:

为什么我的HttpHandler在Visual Studio内置的ASP.NET Development Server中运行时,一切正常,但是部署到IIS服务器后,却是404错误?

A:

这是IIS服务器的编程模型搞的鬼。你的自定义HttpHandler一般都具有某个独一无二的后缀,这里以.png为例,要想让IIS能够正确的识别.png请求,那么你需要做下面三件事情:

定义.png请求的处理逻辑

在web.config文件中配置HttpHandler。例如 。稍微说明一下,它表示PngImageHandler是定义png处理器的类,PngImageHandler类定义在App_Code文件夹中。

在IIS中为你的HTTP处理器映射自定义扩展。步骤如下:打开IIS信息服务,右击你的Web应用程序,选择属性。在"主目录"标签页中点击"配置"按钮。在弹出的应用程序配置对话框中,进行如下图所示的设置,可执行文件为aspnet_isapi.dll,不选择"检查文件是否存在"。

另外,限制字段可以是GET HEAD POST DEBUG四个动作。脚本引擎复选框使得可执行文件在没有执行权限得情况下运行于虚拟目录中,这种执行权限在虚拟目录向导或者虚拟目录属性对话框中标记为RUN SCRIPT。不选中"检查文件是否存在"这样我们不必创建任何新的.png文件。

注意:如果想要增加或者改变特定IIS应用程序的应用程序映射,可以在对应Web应用程序的这个对话框中进行修改。但是如果要改变整个站点的应用程序的应用程序映射,则必须在默认站点应用程序属性中进行修改。

配置起来是不是比较麻烦,其实还有一种方法,ASP.NET有一种内置的扩展.ashx可以省去所有的配置,唯一的区别就是你必须创建一个.ashx文件来封装你的代码。.ashx扩展唯一的缺点是不够灵活。

Q:

IIS服务器中的应用程序保护是什么意思?

A:

l LOW 与服务器运行在同样的地址空间,运行在IIS进程地址空间中的web应用程序可以使服务器完全崩溃,然而,运行在这里的web应用程序比共享的或者独立的web应用程序要快一些。

l MEDIUM 作为共享应用程序组的一部分运行。这一设置可以提供对IIS服务器的保护,但是一个错误的应用程序可以毁掉整个应用程序组。这是一个折中的设置。尽管运行在这里的web应用程序没有IIS进程中的快,但是如果崩溃的话可以自动重新启动。

l HIGH 应用程序获得自己的地址空间,它为可能运行在同一服务器上的其它应用程序提供了最强有力的保护。对于传统ASP应用程序来说,建议将此设置为High。在担心向服务器上安装一个新的应用程序而产生影响时,或者在建立一个与COM组件进行互操作的web应用程序时,都应该考虑将此设置改为High。

当运行设置为共享的web应用程序,它将作为IIS out-of-process pooled applications的一部分运行。当设置为独立的时,它作为独立的一项。

Q:

如何理解JavaScript函数的作用域

A:

在JavaScript中,每个函数都是某个对象的方法。哪个对象?简单的说,就是在函数体内this指向的对象。但是函数中的this引用的是哪个对象呢?我们分三种情况进行说明。

在页面中声明的普通的JavaScript函数称为全局函数。在全局函数的函数体内,this关键字所引用的是全局对象。在HTML DOM中,全局对象的window属性就是全局对象本身。在全局函数中,this指向这个window对象。

处理DOM事件的函数称为DOM事件处理器。在事件处理器的内部,this关键字引用的是关联事件的DOM元素。如果你订阅了某个button元素的click事件,事件处理器中this所指向的对象就是button元素。如果你有一个div元素,它带有一个click事件的事件处理器,并且它的内部有一个span元素,单击span元素将会使click事件冒泡。即使实际上是span触发了事件,但是this指向的是div元素。

如果函数与new运算符一同使用,这个函数称为构造器。在JavaScript中,构造器是用来创建自定义对象的。在构造器内部,this关键字指向新创建的实例。如果新创建的实例定义了方法,方法体中的this指向实例本身。

Q:

在ASP.NET中,如何引入外部JavaScript脚本文件?

A:

1 通过ScriptManager引入外部JavaScript文件

<scriptS>

2 直接在.aspx文件中引入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值