我测试此方法无效:
今天给一台Win 2003 64位的机器IIS配置PHP出现1%不是有效WIN32应用程序的错误,各处配置都是正确的,只是出现这个。于是search一下,找到解决方法:由于在64位操作系统里,默认配置下,IIS工作在64位模式下,这会让许多32位的应用不能正常工作.此时,可用以下命令启用32位模式:
cscript “c:\InetPub\AdminScripts\adsutil.vbs” set w3svc/AppPools/Enable32bitAppOnWin64 1
503 Service Unavailable
使用的此种解决方法貌似可行 :
零住店新建网站报错ADODB.Connection 错误 '800a0e7a'解决办法 使用原来配置未见提示503 Service Unavailable 均用此方法解决。
使用方法 运行cmd 复制内容 回车即可
cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
下面是解决类似一些扩展资料
方法跟32位差不多,只是要注意几个地方
64位版本的iis并不提供Microsoft OLE DB Provider for Jet驱动支持,所以,如果想在64位windows下使用asp或者asp.net连接access,需要将iis以32位的模式进行连接。以下转载自其他网站的64位系统下32位iis与64位之间转换的方法。
ASP.NET 2.0,32 位版本
要运行 32 位版本的 ASP.NET 2.0,请按照以下步骤操作:
1. 单击“开始”,单击“运行”,键入 cmd,然后单击“确定”。
2. 键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3. 键入以下命令,安装 ASP.NET 2.0(32 位)版本并在 IIS 根目录下安装脚本映射:
%SYSTEMROOT%/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i
4. 确保在 Internet 信息服务管理器的 Web 服务扩展列表中,将 ASP.NET 版本 2.0.40607(32 位)的状态设置为允许。
启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
禁用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
64位机配置iis 运行asp.net 程序(转载)1、因用模版安装ASP.NET 2.0需先卸载64位的.net2.0
命令:C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe –u
2、把IIS切换为32Bit模式运行
命令:Cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
3、重装安装32Bit .NET 2.0
命令:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -r
4、安装64位系统下运行的32Bit Asp.net 1.1
5、使用命令修改默认IIS支持asp.net版本为:ASP.NET 1.1
命令:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe –r
批处理程序:
程序代码
@echo off
echo 卸载64Bit ASP.NET 2.0
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -u
echo 切换IIS为32Bit运行模式
Cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
echo 修复ASP.NET2.0
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -r
echo 安装ASP.NET1.1
Frameworks\Framework_1.1.exe /c /t:c:\windows\temp\
c:\windows\temp\netfx.msi /passive
echo 切换Asp.net为v1.1.4322
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -r
@pause
说明:标红色的为自动安装asp.net 1.1 安装文件放在和秕处理文件同目录的Frameworks文件夹下,文件名为:Framework_1.1.exe。如:批处理文件在C:\test\,则在C:\test\下建立文件夹:Frameworks,并把64位系统下运行的asp.net1.1复制到此目录下,并更名为:Framework_1.1.exe。
ASP.NET 版本更换方法
1. 更改当前IIS下所有站点的ASP.NET的版本,和默认新建站点的asp.net版本号。
ASP.NET 1.1:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe –r
ASP.NET 2.0:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -r
2. 单独更改某一站点的asp.net版本
ASP.NET 1.1:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -s W3SVC/%vp%/ROOT/
ASP.NET 2.0:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -s W3SVC/%vp%/ROOT/
说明:标红色中的%vp%为站点的标识号。在IIS中可以看到。
批量处理程序:
程序代码
@echo off
set /p vp="请输入要修改的站点标识符:"
echo 1、Asp.Net 1.1
echo 2、Asp.Net 2.0
echo 3、退出
set /p AspNetVer="请选择Asp.Net版本:"
if %AspNetVer% == 1 goto one
if %AspNetVer% == 2 goto two
if %AspNetVer% == 3 goto end
:one
%SYSTEMROOT%\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -s W3SVC/%vp%/ROOT/
goto end
:two
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -s W3SVC/%vp%/ROOT/
goto end
:end
echo end
@pause
_____________________________________________________________________________________
IIS6+64位系统 VS 32位APP 在64位机器上运行32位版本的ASP.NET 2.0.**** .
上64位的系统现在是越来越多了,特别是在服务器上,64位系统的优势不言而喻。但由于历史的原因,很多时候我们的网络APP中都保留有32位的模块,这样的程序如果要在IIS7上运行,很简单,创建一个单独的支持32位模式的应用池就可以了。但要在64位的IIS6上运行的时候,情况就要复杂些,本文将对此做一些介绍。
就32位支持来说,IIS6与IIS7最大的不同是,在IIS6中,整个站点(Site)只能运行在一种模式下:要么32位,要么64位,这句话是什么意思呢?在C:/Windows/Microsoft.NET下我们可以看到两个目录Framework和Framework64,往里走的话,会发现二者的目录结构几乎完全一样(唯一的区别是1.0.3075只存在于Framework,因为这个版本的.net只支持32位模式),顾名思义,前者支持32位模式,后者支持64位模式,一个站点在一个时间点只能载入其中一套程序,也就是说你必需在二者之间做出选择。这个选择会影响到这个站点下所有的APP,所以,在操作之前,务必三思而后行!一个纯64位程序在32位模式下肯定会损失性能的。
然后,在IIS管理器中,右键点击Default Web Site,点击“属性”,打开“Home Directory"页,点击”Configuration",这里我们可以看到后缀的映射表,注意看一下Executable Path一栏就会发现,其中有不少都指向了C:/Window/Microsoft.NET/下的其中一个路径,如果是Framework,说明当前站点运行在32位模式下,否则,就运行在64位模式下。
不用说,如果站点运行在64位模式下,而我们又打开了一个包含了32位程序的APP,肯定会出问题
下面一个例子:在64位机器上运行32位版本的ASP.NET 2.0.****
C:/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0
C:/Windows/Microsoft.NET/Framework64/v2.0.40607/aspnet_regiis.exe -ua
iis重启命令 iisreset
C:/Windows/Microsoft.NET/Framework64/v2.0.40607/aspnet_regiis.exe -i -enable
C:/inetpub/adminscripts/adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
C:/Windows/Microsoft.NET/Framework/v2.0.40607/aspnet_regiis.exe -i -enable
iis重启命令 iisreset
命令看上去很吓人(-u是要卸载ASP.NET),不过不用担心,后面-i就是安装了,而且安装程序会自动地在IIS中将ASP.NET用到的后缀名映射到C:/Window/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll。它怎么知道该用64位还是32位呢?呵呵,注意上面我们使用的是32位的aspnet_regiis,自然就是链到32位的dll了。
上面这两步的顺序不能颠倒,否则就会出现一些奇怪的错误。比如在我试的过程中,有一段时间整个站点都Service Unavailable了(HTTP 503),原因是我先在64位下用64位的aspnet_regiis.exe把IIS和64位的.NET关联上,然后才用adsutil.vbs把模式改回32位(stupid),结果系统在32位模式下发现载入的DLL全是64位的,就报503错了,这时候如果查看一下事件管理器(在“我的电脑”上点击右键,点击“管理”),就会发现W3SVC-WP报了很多错,错误信息里可以看到SAPI Filter 'C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/aspnet_filter.dll' could not be loaded due to a configuration problem. 之类的。如果使用了MVC框架,那么下面还有一步就是去手动注册mvc后缀,这一步本身没什么可说的,只要映射到32位的aspnet_isapi就可以了。
说到底,兄弟们,还是升级到IIS7吧,一个版本之差,真的比iis6要强多了
已有 693 位网友参与,快来吐槽:
发表评论