@幻想曲
沒錯,權限是ㄧ個問題!
实现HTTPHANDLER功能的另外一个选择是实现一个HANDLER FACTORY,这是通过实现IHTTPHANDLERFACTORY接口来实现的。 IHTTPHANDLERFACTORY接口的定义如下:
INTERFACE IHTTPHANDLERFACTORY
{
IHTTPHANDLER GETHANDLER(HTTPCONTEXT CTX,
STRING REQUESTTYPE,
STRING URL,
STRING PATHTRANSLATED);
VOID RELEASEHANDLER(IHTTPHANDLER HANDLER);
}
GETHANDLER方法在请求开始的时候被调用,而RELEASEHANDLER在请求结束,所有的HANDLER都不再需要的时候被调用。 使用HTTPHANDLERFACTORY的过程一般如下: 首先定义实际处理HTTPHANDLER的类,这个类会在HANDLERFACTORY中被调用以进行实际的处理:
PUBLIC CLASS BASICHANDLER : IHTTPHANDLER { ... }
然后,定义自己的HANDLERFACTORY:
PUBLIC CLASS BASICHANDLERFACTORY : IHTTPHANDLERFACTORY
{
PUBLIC IHTTPHANDLER GETHANDLER(HTTPCONTEXT CTX,
STRING REQUESTTYPE,
STRING URL,
STRING PATHTRANSLATED)
{
RETURN NEW BASICHANDLER();
}
PUBLIC VOID RELEASEHANDLER(IHTTPHANDLER HANDLER) {}
}
最后,在WEB.CONFIG文件中注册这个FACTORY:
TYPE="MYNAMESPACE.BASICHANDLERFACTORY, MYASSEMBLY" />
------(這樣就不需要配置IIS了)! 不過還是要註冊IIS.
@幻想曲 , 謝謝你提醒,我是剛剛差的資料就貼上來了,沒來得及調適.剛剛有測試了一下,發現還是要註冊IIS!!
可以參考MSDN.