1问题解决:64位操作系统下IIS报“试图加载格式不正确的程序”错误
缘由:在64位操作系统下IIS发布32位的项目,报“项目依赖的dll无法读取,试图加载格式不正确的程序”错误
原因:程序集之间的通讯要么全是64位环境下的,要么全是32位环境下的。不能混编访问。不然会出现“试图加载格式不正确的程序”的错误。
解决方法:
【C/S】
运行C/S程序比较简单,直接在Build C/S程序的时候显式指定为X86(64位系统默认为X64)就可以了。
【B/S】
运行B/S稍稍复杂点。在建立网站的时候,又分为两种情况。
A:建立的是“项目”:这个时候跟 C/S 的处理是一样。
B:建立的是“网站”:只需要修改IIS的配置就可以了。
i)“cscript %systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/appPools/enable32bitapponwin64 1” (cmd运行后正常)如果提示
无法找到脚本文件“c:\inetpub”
不用上面的方法也可解决
64位Win7 IIS7运行
(enable32bitapponwin64为1代表可运行32位应用程序),该项可以通过 “命令行”执行一次。(此命令的作用是使IIS能够注册32位的.net FW)
ii)64位OP默认是在IIS下注册了64位的.net Framework的,因此还必须再注册一个32位的.net Framework
C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727> aspnet_regiis.exe –i
2问题解决:
使用的iis是在安装完.net framework 之后才安装的,需要进行iis注册,开始--运行--cmd,打开命令行提示符,输入命令如下
C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe -i
3
HTTP 错误 403.14 – Forbidden
Web 服务器被配置为不列出此目录的内容。’
发布mvc遇到的HTTP错误 403.14-Forbidden解决办法
<system.webServer>
<validationvalidateIntegratedModeConfiguration="false"/>
<modules
runAllManagedModulesForAllRequests="true" />
</system.webServer>
在web.config增加<modules
runAllManagedModulesForAllRequests="true" />
如果还不行,请检查一下“处理程序映射”,里面是否有“ExtensionlessUrlHandler-Integrated-4.0”,如果没有,请注册.net4.0
在运行里输入:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe
-i