WEB服务器怎么做?

 我来答
匿名用户
2013-11-13
展开全部
创建一个 WEB 服务器
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 则负责完成与服务程序相关的操作。
Jtti
2024-10-10 广告
Jtti是一家新加坡全球网络基础服务商,为数百万个网站提供支持,提供香港服务器、新加坡服务器等多种全球服务器,自营全球多个数据中心,为用户提供优质的网络资源和服务。 JTTI服务器整体性能是非常不错的,拥有CN2 GIA+BGP优化线路,多... 点击进入详情页
本回答由Jtti提供
匿名用户
2013-11-13
展开全部
PHP+MYSQL平台可以安装 Vertrigo
ASP平台可以安装IIS
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-13
展开全部
你可以去空间服务商那里租,也可以自己买!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式