本站域名:http://goxia.maytide.net or http://sufan.maytide.net
移动设备请访问:http://goxia.maytide.net/m
转载文章,请务必保留出处与作者信息,未经许可严禁用于商业用途!
[IIS] 在 IIS 7.x 上启用 32bit 应用支持
Internet Information Services (IIS)
在 IIS 7.x 上启用 32bit 应用支持
一个朋友的公司近期要新上线一套 Web 应用系统,这几天开始进行评估测试。这套网站基于 DotNET 2.0 开发,使用的是 MSSQL 数据库。于是我们选择了 Windows Web Server 2008 R2 作为操作系统,SQL Server 2008 R2 Express 作为数据库。系统环境的准备工作都很顺利,由于网站是成品所以需要先上传数据并通过浏览器进行安装。没想到在打开网站时提示如下图的错误信息:
从错误信息看,是没能找到 V5Mall.Run64.dll 文件。于是首先想到的是去网上搜索一下是否有相关解决方案,并让朋友尽快联系官方技术支持。一天过去了,对方也没给回复,网上找到的相关信息也都来自其官方论坛,说是因为权限问题导致的,但这点可以排除,我的设置是没问题的。比较离谱的是看到论坛最终的解答是让更换虚拟主机提供商!说此问题是因为虚拟主机提供商的服务器与他们的网站程序不兼容。我晕!这个解决办法明显不适合我们,并且也不是个解决办法!已经习惯了国内开发商的产品和服务质量……还是自己动手吧。
冷静分析了一下故障错误,既然提示“无法加载 DLL “V5Mall.Run64.dll”:找不到指定的模块。(异常来自 HRESULT:0x8007007E)。”那么首先检查是否有“V5Mall.Run64.dll”这个文件。经查网站下确实无此文件,并且官方也未提供。但是该网站程序又可以运行在“其他”服务器上,如:Windows Server 2003。说明网站程序确实与当前系统环境有兼容性问题,而这个兼容性问题应该是 64bit 操作系统所致。
回忆起自己曾摘抄过一篇文章《Configuring IIS to Run 32-bit Applications on 64-bit Windows (IIS 6.0)》,既然如此那 Windows Web Server 2008 R2 上的 IIS 7.5 也能够启用 32bit 应用支持,这样就可以避免程序去调用“V5Mall.Run64.dll”,使应用以 32bit 方式运行。
在 IIS 7.x 中,要“启用 32bit 应用程序支持”,需要对“应用程序池”进行配置。将“enable32BitAppOnWin64”设置为“True”。这样便将应用程序池的工作进程设置为 WOW64 模式,而在 WOW64 模式下,工作进程将仅加载 32 位应用程序的 32 位进程。为了避免影响其他网站,可为 32bit 应用程序的网站单独创建一个应用程序池。下面 gOxiA 将引导大家如何在 IIS 7.x 下启用 32bit 应用程序支持。
- 为 32bit 应用程序的网站单独创建一个应用程序池,操作过程省略……;
- 打开“Internet 信息服务 (IIS) 管理器”在左侧窗体中展开服务器列表,找到该网站对应的应用程序池;
- 选中应用程序池,并在右边操作窗体中点击“高级设置…”;
- 在“(常规)”设置中找到“启用 32 位应用程序”,并将其设置改为“True”
最后确定并完成操作。在 64bit 的 Windows 操作系统上,IIS 7.x 中“启用 32 位应用程序”的默认设置是“False”,为了方便配置和应用,可以通过“设置应用程序池默认设置…”进行统一的修改,这样以后新建的网站应用程序池都将启用 32bit 应用程序支持。
此外,我们也可以利用命令行进行设置,命令行参考如下:
大家如果也有类似的故障错误,可以用此办法解决。
[Hyper-V] HOWTO:禁用 Hyper-V Server 2008 R2 的复杂密码要求
HOWTO:禁用 Hyper-V Server 2008 R2 的复杂密码要求
Hyper-V Server 2008 R2 是微软发布的一款免费虚拟化平台产品。因为基于 Windows Server 2008 R2 的 Server Core,所以在整个操作方面都不会令 ITPro 感到陌生。但是,要管理好 Hyper-V Server 2008 R2 还是需要下点功夫学习一些命令行。
问题的起因是这样的:
gOxiA 近期打算将公司的 SBS2011(即:Windows Small Business Server 2011)迁移到虚拟化里,这样除了能够大大节省资源以外,为今后的日常管理和维护也提供了极大的便利条件!综合比较 VMware 的 ESXi 和 Microsoft 的 Hyper-V,前者因为之前搭建了测试环境,虽然整体掌控方面令人满意,但日后维护并不方便,毕竟 ESXi 基于 Linux 核心!而完整版的 Hyper-V(这里指:Windows Server 2008 R2)虽然提供了强劲的 UI 管理界面和强大的功能特性,但只是为了跑一个 SBS2011 的虚拟化和其他虚拟机实在是有些浪费!
最终选定了 Hyper-V Server 2008 R2,基于 Server Core,没有过多的功能和角色,服务进程便相对减少,不仅有效降低了资源占用,还极大提升了安全性和稳定性!
使用 Hyper-V Server 2008 R2 来承载虚拟化应用,对虚拟机的操作管理和维护都要依赖于远程管理工具。如果是在域环境下,那么远程管理 Hyper-V Server 将是非常容易的事情,否则我们就需要对服务器和客户端进行专门的设置。幸好,微软 Hyper-V Team 的 Senior Program Manager – John Howard 为我们提供了一款 Hyper-V Server 的远程管理配置脚本,使这一切都变得那么容易!
现在问题浮出水面了:
要为工作组环境中的 Hyper-V Server 配置远程管理,使我们可以使用 Hyper-V Manager 来进行远程管理操作,通常我们会在 Hyper-V Server 上创建一个新的账号,用于管理服务器,由于 Hyper-V Server 2008 R2 默认在安全策略中启用了复杂密码要求,使得账号密码的创建极为不便,特别是在测试需求下!通常的解决办法是使用 gpedit.msc 来进用复杂密码要求,但是 Hyper-V Server 2008 R2 中并未提供 mmc 工具,而在客户端使用 mmc 远程调用服务器的组策略,会发现根本找不到复杂密码要求的配置项。
问题的解决办法:
搜索网络查询了资料,可以使用 Secedit 命令先将安全策略配置导出,然后修改配置,将复杂密码要求禁用,然后再重新导回即可!操作步骤如下:
1、在 cmd 中执行“secedit /export /cfg c:\sec.cfg”,导出安全策略的配置。
2、使用记事本编辑刚才导出的安全配置文件,找到“PasswordComplexity”项将其设置值改为“0”,保存退出。
3、执行“secedit /configure /db c:\windows\security\sec.sdb /cfg c:\sec.cfg /areas SECURITYPOLICY”将刚才修改的设置导回安全策略中。
最后执行 gpupdate /force 强制刷新一下组策略即可!至此问题解决……
Secedit 的参考资料:http://technet.microsoft.com/zh-cn/library/bb490997(en-us).aspx
Hyper-V Server 2008 R2:http://goxia.maytide.net/read.php/1500.htm
Windows Server 2008 R2 Hyper-V 核心功能对比:http://goxia.maytide.net/read.php/1373.htm
[WDS] 解决 PXE-E32, TFTP Time Out 故障一例
解决 PXE-E32, TFTP Time Out 故障一例
这个月打完补丁后发现服务器上的 WDS 工作不正常,故障表现在客户端 PXE 启动后,无法 TFTP 下载数据,最终导致出现 TFTP Timeout 错误。查询相关资料,找到一篇 KB977512 按照其办法解决。
原来,微软最近发布的一个针对 DNS 漏洞的更新导致了 WDS 和 DNS 在一台服务器上即会出现 PXE-E32, TFTP Time Out 的故障。Windows Server 2008 和 Windows Server 2008 R2 都受到了影响,微软 KB 中给出了各自的解决办法,以 gOxiA 的 Windows Server 2008 R2 环境为例,只需要修改注册表将 WDS 的 UdpPortPolicy 禁止即可。具体操作如下:
使用 Regedit 打开注册表编辑器,找到如下路径,将“UdpPortPolicy”的值改为“0”,最后重新启动 WDS 服务即可!
至此,故障解决!如果系统为 Windows Server 2008 可以参考 KB 修改 WDS 的 UDP 范围即可,当然也可以使用 wdsutil 命令直接进行修改“wdsutil /set-server /transport/startport:50000 /endport:65000”