IIS6部署web service完整过程

本文详细介绍了在内网环境下部署web服务时遇到HTTPError503错误的排查和解决过程,包括设置网站、应用程序池、启用目录浏览、配置IIS_WPG用户组及调整权限等步骤,最终成功使得电脑和手机都能访问服务。

今天使用内网部署web服务,用手机进行访问(手机访问内网服务器网页见上一篇博客),

基本步骤如下:

1.visual studio 生成web服务,并部署到某一文件夹ws中

2.服务器IIS在“网站”中右击添加一新网站ws,将目录定位1中的目录ws(添加网站过程中要求设置如下图所示网站名,路径,绑定ip等内容。ip一旦绑定,访问时将按照ip来访问))

这时访问该服务,会出现“”HTTP Error 503. The service is unavailable”的出错页面


3.继续做以下设置:在自动生成的“ws”(由2中网站而自动生成)的应用程序池中,找到ws应用程序池,右键菜单并选择“属性”,选择4.0的框架(在visual studio 使用2010的4.0的框架生成的),托管管道模式选择“经典”,并勾选“立即启动应用程序池”(要保证应用程序池要处于运行,未运行将看不到效果)


4.之后访问服务会出现


这时点击网站zs,并在“IIS”中的“目录浏览”

在"操作"下,点启用,此按钮将变成禁用,则可消除此错误


5.配置右侧服务器,在“功能”视图中,双击“ISAPI 和 CGI 限制” 以确认 Web 服务扩展被设置为“允许”。

在“功能”视图中,双击“ISAPI 和 CGI 限制”

 Web 服务扩展被设置为“允许
Tisp:
a、如果该扩展不在列表中,请在“操作”窗格中单击“添加”。
b、在“添加 ISAPI 和 CGI 限制”对话框中,在“ISAPI”或“CGI 路径”框中键入 .dll 或 .exe 文件的路径,或者单击“浏览”导航到相应文件的位置。
c、在“描述”框中,键入该限制的简要说明。
d 、(可选)选中“允许执行扩展路径”以使限制可以自动运行。
e、如果不选中此选项,则限制状态将为“不允许”,这是默认状态。您可以在以后选中此选项并单击“操作”窗格中的“允许”来允许该限制。 单击“确定”。 

6.如果不能浏览web 服务,右击该网站右键程序池–高级设置,往下拖,在进程模型中有标识一项,点击后面的省略号,在弹出窗口的“内置帐户”下拉,选择“NetworkService”,确定。

好了,经过几个步骤,电脑和手机都可以访问了



下面,附上一篇相关文章:

IIs_WPG用户组的介绍 

为了管理的方便,在安装 IIS 6 时创建了 IIS_WPG 组(也称为 IIS 工作进程组,IIS WorkerProcess Group),而且它的成员包括 Local System(本地系统)、Local Service(本地服务)、Network Service(网络服务)和 IWAM 帐户。IIS_WPG 的成员具有适当的 NTFS 权限和必要的用户权限,可以充当 IIS 6 中工作进程的进程标识。以下位置具有指派给 IIS_WPG 的权限:

? %windir%\help\iishelp\common – 读取
? %windir%\IIS Temporary Compressed Files – 列出、读取、写入
? %windir%\system32\inetsrv\ASP Compiled Template – 读取
? Inetpub\wwwroot(或内容目录)- 读取、执行

另外,IIS_WPG 还具有以下用户权限:

? 忽略遍历检查(SeChangeNotifyPrivilege)
? 作为批处理作业登录(SeBatchLogonRight)
? 从网络访问此计算机(SeNetworkLogonRight)因此,Network Service 帐户提供了访问上述位置的权限,具有充当 IIS 6 工作进程的进程标识的充足权限,以及具有访问网络的权限。

所有的IIS6进程都是运行在IIS_WPG 账号下的


另外,在查找资料的过程中,找到了我希望印证许久,而始终未印证的话,帮助我们清楚HTTP协议的底层实现,在下面以蓝色HTTP循环地体予以描述

503错误

503是一种 HTTP状态码。英文名503 Service Unavailable与 404(404 Service Unavailable)是同属一种网页状态出错码。前者是 服务器出错的一种返回状态,后者是网页程序没有相关的搜索结果后返回的一种状态,需要优化网站的时候通常需要制作 404出错页以便网站整体优化。

定义

由于临时的 服务器维护或者过载,服务器当前无法处理请求。这个状况
503
是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After起头用以标明这个延迟时间。如果没有给出这个 Retry-After信息,那么 客户端应当以处理 500(Server Internal Error)响应的方式处理它。注意: 503状态码的存在并不意味着必须在 服务器过载的时候使用它。某些 服务器只不过是希望拒绝某些 客户端的连接。

分析

出现 503错误,其 日志都是记录在 %Systemroot%\System32\LogFiles\HTTPERR\httperr1.log中。
其中的 s-reason项:
1、若为 AppShutdown,可能是由于 CPU占用率太高导致自动关闭 应用程序池。
2、若为 AppOffline,可能是由于 应用程序标识出错引起的。
3、若为 Disabled,可能是由管理员手工关闭 应用程序池引起的。
4、若为 QueueFull,可能是因为请求时 应用程序池队列已满而生成该错误。

2HTTP循环

任何客户端在和您的网络服务器通讯时,都需经过以下循环:
从您站点的 IP 名称 ( 即您的网页地址 - URL, 不带起始的 ‘http://') 获得一个 IP 地址。这个对应关系 ( 即由 IP 名称向 IP地址转换的对应关系 ) 由域名服务器(DNSs) 提供。 打开一个 IP socket (套接字) 连接到该 IP 地址。 通过该 socket 写 HTTP 数据流。 从您的网络服务器接受响应的 HTTP 数据流。该数据流包括状态编码, 其值取决于 HTTP 协议 。 解析 该数据流得到 状态编码 和其他有用信息。 该错误在以上所述的最后一步生成,即当客户端收到 HTTP 状态编码 并识别其为 ‘503’ 时。

3出现原因

网页出现

1、 网络管理员可能关闭 应用程序池以执行维护。
503错误
2、当请求到达时 应用程序池队列已满。
3、 应用程序池标识没有使用预定义账户:网络服务,而自己 配置了标识,但是配置的这个用户不属于 IIS_WPG
4、 应用程序池启用了 CPU监视,并且设置了 CPU利用率超过一定百分比关闭应用程序池,而开发人员写的 服务端页面( . asp ,. aspx)执行效率不高,会引起 CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭
5、 应用程序池的性能选项卡的 请求队列限制所填的数值太小,默认为 1000
6、 web.configsystem.web/httpRuntime节点的 appRequestQueueLimit属性设置的值太低。

主机站点

主要原因有两点:
1、该站点正在被攻击。对于最新型的攻击,其实是 ddos的一种派生,原理在于找数千个IP,同时向 服务器apache发出请求,然后 立即断开,让 apache处于等待状态,致使 apache线程全部被填满,致使服务器死机。因此,为了保证大多数客户的利益,我们给每个 空间,作出了每 1964php请求的限制。注意,是 php请求,一般的图片请求和 html请求不包括在内。
503错误
2、该程序占用的 php线程过多,有的程序没有进行好优化处理,一个点击即可产生数个,甚至数十个 php线程。这样的话,几个点击就可以把该时段的 64php线程全部填满了。因此出现 503错误。建议优化一下程序,尽量少用 require(“请求”之意)等语句。

解决方案:
要解决此问题,按照下列步骤操作:
1. 验证是否已为 虚拟服务器 配置应用程序池。默认的 应用程序池是MSSharePointPortalAppPool。
请按照下列步骤来确定 虚拟服务器正在使用的 应用程序池
a.单击“开始”,指向“管理工具”,然后单击“ Internet信息服务(IIS)管理器”。
b.展开“ServerName”,展开“Web站点”,右键单击 虚拟服务器,然后单击“属性”。
c.单击“主目录”选项卡。为虚拟服务器 配置应用程序池列在“应用程序池”框中。
d.单击“确定”。
2、 验证 应用程序池 帐户使用的密码是否正确。IIS不会自动轮询ActiveDirectory目录服务中的密码更改。如果 应用程序池 帐户是一个域帐户,其密码已过期,则在为此帐户重新指定一个新密码后,您可能会收到本文“症状”部分所描述的 错误信息
3、 验证 应用程序池 帐户服务器上的IIS_WPG组和STS_WPG组的成员。
4、重新启动 IIS以回收 应用程序池

4解决方法

您的 Web 服务器实际上处于“关闭维修”状态。 它仍然在最低限度地运行, 因为它至少可以响应 503 状态码, 但全面服务是不可能的, 即您的网站不可用。 可能的原因有很多, 但一般来说, 是由于您的 Web 服务器操作员的人为干预。 通常您就应知道有人正在努力解决此问题,正常服务将被尽快恢复。
请和您网站的系统操作员联系,以确定为什么服务停止了。 和我们比起来,他们将能更好地帮您解决这类错误。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值