问题重重的WINDOWS SERVER 2008+IIS7.0 站点发布

来源:互联网 发布:安卓版手机双色球软件 编辑:程序博客网 时间:2024/05/22 14:38

今天在服务器上发布一个WEB站点,折腾了一个上午。我把过程中碰到的问题记录下来,以备以后参考。

这次发布的服务器环境是WINDOWS SERVER 2008(x64)+SQL SERVER 2008+IIS 7.5(之前发布的环境多是IIS 6.0,系统是

WINDOWS SERVER 2003)

1. 在干净的系统上安装SQLSERVER 2008(数据库所用)

2. 安装VS2008,其实安装VS2010,只是因为需要使用Vistual Studio命令提示工具(用于发布Windows Service),由于时间

比较紧,因此也没有多考虑,就把VS装上去了。(个人感觉应该可以有其他的方式代替,如果有朋友知道的话,望能共享出来)

3. 安装IIS 7.5,通过WINDOWS角色添加来安装

4. 发布网站

到目前为止还算顺利,但之后出现了不少问题。

问题1:测试网站访问,提示处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模

块“ManagedPipelineHandler”

通过网上查阅,首先解决了该问题。

解决方案:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

问题2:登陆站点,提示验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指

定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。

再次通过网上查阅的方式解决该问题。解决方案:验证视图状态 MAC 失败解决方法

问题3:无法成功登陆网站

这个问题是最麻烦的,原因在于:

1. 首先想到的是数据库连接字符串不正确,因此做了检查,发现并没有问题。(同样的连接字符串,WINDOWS SERVICE可

以成功访问并操作数据表)

2. 接着想到查看日志,却突然发现LOG4NET并没有输出日志,检查了LOG4NET的相关配置,也找不到任何问题(同样的配

置,WINDOWS SERVICE可以输出日志)

3. 重新发布网站,不再对异常检查,直接抛出。结果页面登陆后,提示“IIS AppPool\ASP.NET v4.0无法登陆“的错误(IIS的应

用程序池使用的是ASP.NET v4.0)

看到这个错误后,就一头雾水,网上检索该错误信息,千篇一律给出的方案都是将应用程序池的标识改为”local system",

但我并没有采纳,local system权限过大,有安全风险。之后继续搜索,发现了一篇文章:IIS7.5中神秘的ApplicationPoolIdentity。引起我注意的在于"ApplicationPoolIdentity",因为ASP.NET v4.0采用的默认标识就是那个。

之后浏览文章后,发现可以为该账户增加权限。回想之前的错误是由于访问数据库引起的,就以试试的心态,在数据库的安全

账号里增加了"ApplicationPoolIdentity"的账号并附上权限,之后重新再次访问站点,成功进入且所有功能使用正常。并且最后发现LOG4NET也能正常输出日志了。


但是对于出现的第3个问题,一直无法找到原因,只能猜想是不是安装SQL时有什么组件之类的没有安装导致的。因为同样的

环境,还有一台服务器就没有这么多情况,网站部署很顺利。

欢迎大家分享自己的想法,彼此讨论下,我也想通过大家的帮助了解究竟是哪一步出现了差错,导致问题3的出现。

0 0
原创粉丝点击