我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 操作系统 > 服务器 > WEB相关 > 创建一个 WEB 服务器
热门文章排行
热门文章排行 启动与关闭服务器(12-28)
服务器应用:用serv-u建立FTP一(11-16)
破解局域网内不能互访的六大经典问题(12-28)
Windows中IIS内FTP服务器高级配置(11-16)
怎样设置域名的DNS服务器(11-16)
精采文章排行
精采文章排行 在Windows Server 2003中为Web站点(11-16)
IP基础--DNS协定(11-16)
怎样设置域名的DNS服务器(11-16)
DNS—bind安装与配置的关键技术揭秘(11-16)
Exchange Server 服务器通讯端口(11-16)
技术专题推荐
网管论坛交流
 

创建一个 WEB 服务器 

作者:   来源:   点击:   日期:2006-11-16

 

NetBox 的一大功能就是内置支持了 HttpServer 和 asp。下面就按步骤建立一个以服务方式运行的 WEB 服务器。

第一步:创建 WEB 服务器
由于 NetBox 提供了 HttpServer 对象,所以建立一个新的 HttpServer 并且启动、停止、退出,自然便是由 HttpServer 对象来实现,main.box 的代码也就比较简单了:

Set Console = Shell.Console
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
httpd.Start

Console.ReadLine

httpd.Stop
httpd.Close
End If

Set httpd = Nothing
在上面的代码中,先创建一个新的 HttpServer,然后在所有的本机地址的 80 端口创建一个服务器,如果创建成功,则启动服务器,等待用户在控制台上输入回车后停止并关闭服务器。

运行这个程序,如果当前系统中未安装其他 Web 服务器,则此程序会显示控制台并等待回车,否则将直接退出。呵,我们的第一个程序都是很拙劣的。没有关系,我们一步一步来。

如果成功运行了程序,便可以用浏览器访问了,由于服务器装在本机,所以打开浏览器,在地址栏输入“http://localhost/”,哈,结果出来了,不过很不好看:

418 Host Not Found
不管想访问什么,都只会是这个结果。这样的结果显然不能满足要求,所以我们需要改进我们的 Web 服务器。

第二步:添加虚拟主机
前面我们建立的服务器之所以总是返回禁止访问,原因是没有为服务器建立主机信息。所以我们修改代码,使用 AddHost 方法增加主机信息的部分:

Set Console = Shell.Console
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
httpd.AddHost "", "\wwwroot"
httpd.Start

Console.ReadLine

httpd.Stop
httpd.Close
End If

Set httpd = Nothing
在 NetBox 执行目录建立一个子目录 wwwroot,然后复制一些网页进去。我们再来看看效果如何。执行程序并再次访问“http://localhost/”,结果居然还是“403 Forbidden”。再访问 wwwroot 目录中已有的文件,哈哈,出现正确内容了。所以,实际上主机已经建立出来,但是未给主机提供缺省文件名。

第三步:添加缺省文件
为了让主机知道当用户访问目录时向用户返回的文件,需要使用 AddDefault 方法为主机添加缺省文件名,修改代码如下:

Set Console = Shell.Console
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
Set host = httpd.AddHost("", "\wwwroot")

host.AddDefault "default.htm"

httpd.Start

Console.ReadLine

httpd.Stop
httpd.Close
End If

Set httpd = Nothing
我们再访问“http://localhost/”的时候,会发现不...在,则返回“404 File Not Found”。

第四步:支持服务器脚本
上面的步骤建立出来的 Web 服务器,是一个纯静态文件的服务器,是无法执行服务器脚本程序的,为了让我们的 Web 服务器能够理解服务器端脚本程序,需要修改 EnableScript 属性,同时为了让服务器能够使用脚本程序做为缺省文件,还需要再添加一个缺省文件,下面是新修改的代码:

Set Console = Shell.Console
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
Set host = httpd.AddHost("", "\wwwroot")

host.EnableScript = true
host.AddDefault "default.asp"
host.AddDefault "default.htm"

httpd.Start

Console.ReadLine

httpd.Stop
httpd.Close
End If

Set httpd = Nothing
接下来,我们就可以在 wwwroot 目录里建立我们的 asp 脚本程序了,建立 test.asp:

<%Response.Write "Hello"%>
NetBox 也支持服务器 box 程序,在 wwwroot 目录中建立 test.box:

Response.Write "Hello"
第五步:以服务方式运行
到目前为止,已经有一个相对完整的 Web 服务器程序了,下面我们需要将这个服务器改写为系统服务程序,可以将其安装成为一个系统服务,更加便于运行维护。改写成为服务程序需要使用 Service 对象。

下面便是一个完整的 Web 服务程序的代码,关于 Service 对象的更多信息请参阅手册相关内容。

Dim httpd


Shell.Service.RunService "NBWeb", "NetBox Web Server", "NetBox Http Server Sample"

'---------------------- Service Event ---------------------

Sub OnServiceStart()
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
Set host = httpd.AddHost("", "\wwwroot")

host.EnableScript = true
host.AddDefault "default.asp"
host.AddDefault "default.htm"

httpd.Start
else
Shell.Quit 0
end if
End Sub

Sub OnServiceStop()
httpd.Close
End Sub

Sub OnServicePause()
httpd.Stop
End Sub

Sub OnServiceResume()
httpd.Start
End Sub
总结
实现一个完整的 Web 服务程序,需要 HttpServer,HttpServerHost,Service 三个对象的支持,HttpServer 负责建立服务器并控制服务器的运行状态,HttpServerHost 负责建立主机信息, Service 则负责完成与服务程序相关的操作。



文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。