您的位置:首页 > 其它

.NET Framework 4.5 引发的问题 推荐

2013-01-22 14:58 218 查看
隔了这么长时间,终于可以更新一下博客了,在一会儿去客户那里之前,喘口气的时间先说明一下这个坑爹的Framework4.5吧。

本身这个项目没有什么难点,只是做了2个Ipad能够使用的Web画面到客户那里去了解一下客户的意见。结果客户看到了,就像直接使用。不知道那个脑残的领导竟然一口同意了,直接就在服务器上搭建环境,让客户试用。

领导说话,只能照做,于是就在Windows server2008的环境下,下载了SQLServer Express按上数据库,然后装上了IIS7.5和.NET的Framework4.0。

本身客户的服务器是不允许重启机器的,正好我们赶在中午时间,服务器可以停1个小时,我和一个同事忙忙呼呼的把环境装完,就在这个时候,又不知道那个糊涂领导,竟然点了windows Update,让系统更新。后来就是漫长的等待了,服务器重启更新,整整花了3个小时。只剩下我们不停的跟客户道歉了。

道歉的事情先不说了,3个小时后,终于服务器启动了,IPad的页面也能正常打开了。就在我们以为OK了,准备打道回府的时候,悲剧发生了。

IPad的页面在wifi不能正常连接的时候,重新打开页面的时候,页面控件发生变形。主要是.NET的控件发生变形,查看Ipad上的代码,控件样式和实践代码都没有写入HTML。

难道是IIS的问题,重新配置IIS,设置Session超时时间,重新刷新。变形的画面依然屹立在那里。怎么办,怎么办?先跟客户说一下,页面还没有完成,测试也没有完成,所以出现bug了。但是客户说就是想做练习,试用这个。再百般无奈下,答应客户隔一天,sourse完成后,再重新发布一般再做练习。客户也同意了。

回去后,感觉这个bug没有这么简单,原因在那里无法调查。因为同样的画面,在PC机上操作,完全没有问题。而且,回到公司后,此现象无法再现。于是先把sourse完成后再说吧。

就这样,再完成sourse后,第三天给客户实施的时候,此问题又在客户的IPAD上出现了。这下真没有主意了。在PC机上测试,IE,Chrome,Safari都没有问题。IPhone同样没有问题,只是在Ipad上出现。后来在IPhone上装了个Chrome,出现同样的控件变形情况。

后来在彻底无语的情况下,跟客户道歉,回公司继续研究。为了能够在公司重现现象,装了一台与客户服务器一样的环境。终于在这个时候,公司也重现了BUG。

能够重现,就有机会研究。IIS的配置,Source代码,升级补丁一点点检查,依然没有任何起劲。后来在同事的启发下(他开发的帐票是ReportViewer11的,发布之后,他.NET4.0不支持,Web.Config一直失败,其实是其他原因),公司不能再现的两台机器是开发机器发布的,用的是VS2012,默认的.NET Framework是4.5的,虽然我们发布是时候使用了4.0编译,但是本身环境是4.5的。难道是4.5的原因。于是2步走,先将项目抑制到VS2010中,并且只有4.0的环境中,编译发布,控件变形。将环境升级到.NETframework4.5,问题解决。原来真是FW4.5的问题啊。

后来到微软网站上确认.NET FW 4.5的功能时,有这么一段解释。

Web

ASP.NET 4.5 には次の新機能があります。

新しい HTML5 フォームの種類のサポート。

Web フォームでのモデル バインダーのサポート。 これらを使用することで、データ アクセス メソッドに直接データ コントロールをバインドし、.NET Framework データ型とユーザー入力を相互に自動変換できるようになります。

クライアント側の検証スクリプトにおける控え目な JavaScript のサポート。

バンドルや縮小などを通じてクライアント スクリプトの処理を向上させることによるページ パフォーマンスの改善。

AntiXSS ライブラリ (これまでの外部ライブラリ) からのエンコード ルーチンを統合して、クロスサイト スクリプティングの攻撃から身を守ります。

WebSockets プロトコルのサポート。

HTTP 要求と応答の非同期の読み取り、書き込みのサポート。

非同期モジュールとハンドラーのサポート。

ScriptManager コントロールのコンテンツ配信ネットワーク (CDN) のフォールバックのサポート。

具体参照 http://msdn.microsoft.com/ja-jp/library/vstudio/ms171868.aspx#web
后面补充一下要使用VS2012下的ReportViewer时,在服务器上要安装2个环境

1)SQLSysClrTypes.msi (这个是For Sqlserver 2012的)

2)ReportViewer.msi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息