
/*捕获内部错误{{*/
global.onError = function( err,over,app ){ 
    if(!over){
        import debug;
        var stack = debug.traceback(,"调用栈",3);
        err =  ..string.concat(err,'\n',stack);
    }
    
    /*
    CGI.EXE 内部错误可请查看"CGI.EXE目录/config"下面生成的日志文件。网页代码发生500内部错误，
    可查看"网站目录/config"下面生成的日志文件,使用localhost绑定并访问要测试的网站也可以查看500错误的详细信息。
    */
    import fsys.log;
    fsys.log.print( err );
    
    return err;
} 
/*}}*/ 

import fastcgi;
import fastcgi.client;
import fsys.log;

//创建CGI客户端(用于处理Web服务器请求)
var fcgiClient = fastcgi.client();

//当前不是通过 FastCGI 启动
if( !fcgiClient.getStream() ){
	import fastcgi.iisInstall;
	return;
}

//启动CGI客户端
fcgiClient.run(
	function(response,request,session){
	 	response.loadcode( request.path );//参数可省略 
	} 	
);

/*
FastCGI安装配置说明
-------------------------------------
此程序应先生成EXE文件、并在web服务器上注册为fastcgi模块才能使用，
以 WIN2008,IIS7为例(网上教程很多，请自行查找详细教程)

1、桌面右键点【计算机】，弹出菜单中点【管理】，【添加角色/添加IIS】

2、右键点【Web服务器(IIS)】，弹出菜单中点【添加角色服务】，确认已添加【CGI】

3、然后打开IIS，到指定的网站点击【处理程序映射】，添加【处理程序映射】
   后缀名设为：*.aardio ( 如果设为 *,取消勾选请求限制到文件或目录则处理所有URL )
   模块选：FastCgiModule
   可执行文件：选中使用本工程生成的 aardio-cgi.exe 即可
   
4、在资源管理器右键点击 aardio-cgi.exe 所在目录，在目录属性中点【安全】，
添加IUSR,IIS_USER用户组权限,允许读取和执行、列出目录、读取、写入权限。

5、如果是64位系统，请在应用程序池属性中设置"启用32位的应用程序"为True

IIS 只要使用 win-acme（不支持 WIN 2008） 就可以开通免费HTTPS，
可自动续期，操作很简单请自行搜索教程。
*/

/*
FastCGI开发常见问题:
-------------------------------------
1、如果用新版 aardio 编写的代码，在旧版编译的CGI.EXE中运行报错，那么把旧版CGI.EXE重新编译一次就可以。

2、import导入的库，在一个进程中只会加载一次, 如果网站引用了修改的库，应当杀除CGI.EXE进程重启动，如果在服务器上编译CGI.EXE，此工程会在发布后自动执行此操作。工程内的发布前触发器,\.build\default.init.aardio 会在每次发布前停止已运行的CGI进程，这个操作需要管理权限如果在本机上安装IIS测试，本机测试建议以管理权限启动aardio开发环境

3、如果是64位系统，请在应用程序池属性中设置"启用32位的应用程序"为True

4、CGI.EXE 内部错误可请查看"CGI.EXE目录/config"下面生成的日志文件。网页代码发生500内部错误，可查看"网站目录/config"下面生成的日志文件。使用localhost绑定并访问要测试的网站也可以查看500错误的详细信息。

5、注意在编写网站时，有必要请输出日志文件来排查错误。
*/