Dispose(bool)”: 没有找到适合的方法来重写

Python010

Dispose(bool)”: 没有找到适合的方法来重写,第1张

可能是你修改了namespace,导致的。dispose在designer文件中。

你把designer中的namespace也改了就可以了。

多看看VS的错误提示,或者把他贴出来,这个问题解决的会更快。

当客户端请求一个*文件的时候,这个请求会被 inetinfo.exe (IIS相关的系统组件)进程截获,它判断文件类型后,将这个请求转交给 ASPNET_ISAPI.dll , ASPNET_ISAPI.dll 会通过http管道(Http PipeLine)将请求发送给 ASPNET_WP.exe 进程,在 ASPNET_WP.exe 进程中通过HttpRuntime来处理这个请求,处理完毕将结果返回客户端。

inetinfo.exe 进程:是www服务的进程,IIS服务和ASPNET_ISAPI.DLL都寄存在此进程中。

ASPNET_ISAPI.DLL :是处理.aspx文件的win32组件。其实IIS服务器是只能识别静态文件的,当IIS服务器发现被请求的文件是.aspx文件时,IIS服务器将其交给aspnet_isapi.dll来处理。

aspnet_wp.exe 进程:ASP.NET框架进程,提运行的托管环境的CLR(公共语言运行时)就是寄存在此进程中。

ASP.NET Framework处理一个Http Request的流程:

HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->ASPNET_WP.exe-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest()

ASP.NET请求处理过程基于管道模型,管道模型由多个HttpModule和HttpHandler组成(默认19个管道事件),ASP.NET把http请求依次传递给管道中各个HttpModule,最终被HttpHandler处理,处理完成后,再次经过管道中的HTTP模块,把结果返回给客户端,可以在每个HttpModule中都可以干预请求的处理过程。

这里以简单在处理完请求后,输出一些公司的版权信息为例,关于context 可以注册的事件为19个,详细介绍参照图1.ASP.NET管道事件和页面生命周期示意图

然后在Web.config 中配置如下节点System.web节点下:

name 为Moduler的名字,type:有两部分组成,前半部分是命名空间和类名组成的全名,后半部分是程序集名称。

可以在网站的任何一个网页下看到,如下信息:

图一---ASP.NET管道事件和页面生命周期示意图(图片来源于黑马学生)

在httpModule中自定义自己的HttpModule 可以实现登录,权限控制等操作。

HttpHandler是处理客户端的请求上下文的最后步骤,对服务器页面进行编译实例化执行,将处理后的信息返回给客户端,一旦自定义HttpHandler 将覆盖系统的默认HttpHander.

web.config配置:

3.2 注意

ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpModule对请求进行处理,然后到达 HttpHandler,HttpHandler处理完之后,仍经过Pipeline中各个HttpModule的处理,最后将HTML发送到客户端浏览 器中。

4 IHttpModule与IHttpHandler的区别整理

1.先后次序.先IHttpModule,后IHttpHandler. 注:Module要看你响应了哪个事件,一些事件是在Handler之前运行的,一些是在Handler之后运行的

2.对请求的处理上:

IHttpModule是属于大小通吃类型,无论客户端请求的是什么文件,都会调用到它例如aspx,rar,html的请求.

IHttpHandler则属于挑食类型,只有注册过的文件类型(例如aspx,asmx等等)才会轮到调用它.

3.IHttpHandler按照你的请求 生成响应的内容,IHttpModule对请求进行预处理,如验证、修改、过滤等等,同时也可以对响应进行处理

ASP.Net系统本身配置有很多HttpHandler和HttpModule,以处理aspx等.Net标准的页面文件,以及这些页面文件中标 准的事件处理等。查看%System%/Microsoft.NET\Framework\v2.0.50727\CONFIG目录下的 nfig文件中的httpHandlers和httpModules节点,可以看到这些配置。如果有兴趣,可以使用Reflector查 看.Net系统中相关的类和方法,了解.Net如何处理以及做了什么处理。

.Net也提供了一套机制来开发自定义的HttpHandler和 HttpModule,均可以用于对HttpRequest的截取,完成自定义的处理。 HttpModule 继承System.Web.IHttpModule接口,实现自己的HttpModule类。必须要实现接口的两个方法:Init和Dispose。在 Init中,可以添加需要截取的事件;Dispose用于资源的释放,如果在Init中创建了自己的资源对象,请在Dispose中进行释放。

以上参考: http://www.educity.cn/develop/474379.html

多页单个tif文件转换为多个jpg文件

需要官方的一些包支持(具体参考源码),上网找找即可。

源码:

-------------------------

import java.io.*

import com.sun.media.jai.codec.FileSeekableStream

import com.sun.media.jai.codec.ImageDecoder

import com.sun.media.jai.codec.ImageCodec

import com.sun.media.jai.codec.TIFFEncodeParam

import com.sun.media.jai.codec.TIFFDecodeParam

import com.sun.media.jai.codec.JPEGEncodeParam

import java.awt.image.RenderedImage

import javax.media.jai.RenderedOp

import javax.media.jai.JAI

import java.awt.image.renderable.ParameterBlock

public class MultiPageRead {

public static void main(String[] args) throws IOException {

new MultiPageRead().doitJAI()

}

public void doitJAI() throws IOException {

FileSeekableStream ss = new FileSeekableStream("./zhaoming.tif")

TIFFDecodeParam param0 = null

TIFFEncodeParam param = new TIFFEncodeParam()

JPEGEncodeParam param1 = new JPEGEncodeParam()

ImageDecoder dec = ImageCodec.createImageDecoder("tiff", ss, param0)

int count = dec.getNumPages()

param.setCompression(TIFFEncodeParam.COMPRESSION_GROUP4)

param.setLittleEndian(false)// Intel

System.out.println("This TIF has " + count + " image(s)")

for (int i = 0i <counti++) {

RenderedImage page = dec.decodeAsRenderedImage(i)

File f = new File("./fk_" + i + ".jpg")

System.out.println("Saving " + f.getCanonicalPath())

ParameterBlock pb = new ParameterBlock()

pb.addSource(page)

pb.add(f.toString())

pb.add("JPEG")

pb.add(param1)

//JAI.create("filestore",pb)

RenderedOp r = JAI.create("filestore",pb)

r.dispose()

//RenderedOp op = JAI.create("filestore", page, "./zhaoming_" + i + ".jpg", "JPEG", param1)

}

}

}