在VS2012上调试运行都正常,把网站部署到IIS后,登陆界面的验证码不能显示了(验证码是通过另一个页面嵌入到登陆页面上的),在网上看到了好多解决方案,启用父路径,验证码的路径问题,登陆权限问题等等,都没有解决。不经意看到了一篇IIS应用程序池添加ASP.NET v4.0的博客,对比在其他电脑发布网站的配置,终于找到了可行的解决方案。
有些在IIS6开发的代码需要运行于经典模式,因为在集成模式下会出现错误信息。可能在安装.NET Framewrok 4.0之前,IIS就已经装好了,结果在IIS的应用程序池中只有ASP.NET 2.0的Classic .NET AppPool和ASP.NET v4.0integrated。在使用vs2012开发的程序时,由于使用的是.NET Framework 4.0,所以部署到IIS上的时候,页面提示“无法识别的属性targetFramework"错误,而使用v4.0 集成模式又会提示错误信息。
解决方案1:重新安装.NET Framewrok 4.0
在Frameworv4.0的目录中安装的程序以管理员权限重新运行一下就可以了.执行以下命令:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
应用程序池中就会有v4.0的应用程序池,然后再在Win7下打开控制面板--管理工具--Internet 信息服务(IIS)管理器,选择网站,在右边的“基本设置”中,将“应用程序池”修改为“ASP.NET v4.0 Classic”,如下图所示: