您好,欢迎访问本站博客!登录后台查看权限
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧
  • 网站所有资源均来自网络,如有侵权请联系站长删除!
  • 了解seo技术,运营知识,营销策略,,MU MU ZHONG CHENG——沐目忠诚
  • 忠告:无论她(他)怎么对你,你都不能伤害她、她有她得难!

电信通云主机一键还原 503 错误及1%不是有效win32应用程序错误

网站建设 沐目忠诚 2014-05-08 693 次浏览 0个评论
网站分享代码

我测试此方法无效:

今天给一台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

QQ截图20140508231343.jpg


下面是解决类似一些扩展资料

方法跟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 位网友参与,快来吐槽:

发表评论