王朝网络
分享
 
 
 

小试ASP.NET 2.0的兼容性

王朝厨房·作者佚名  2007-01-04
宽屏版  字体: |||超大  

ASP.NET 2.0来了! 在我们为ASP.NET 2.0的新特性感到激动的同时,我想很多ASP.NET开发人员非常关心这样一个问题:ASP.NET 2.0的兼容性怎么样?ASP.NET 1.1开发的程序能直接运行在ASP.NET 2.0上吗?

在SDK文档中,对于.NET Framework 2.0的兼容性有这样描述的:“The .NET Framework provides a high degree of support for backward compatibility. For example, most applications created using version 1.0 will run on version 1.1 and applications using version 1.1 will run on version 2.0.”。

看了这样的描述,我想:如果ASP.NET 1.1开发的程序真能直接运行在ASP.NET 2.0上,那就太棒了,但ASP.NET 2.0相对于1.1的变化这么大,做到这样的兼容难度很大,微软一向对向后兼容很重视,我们应该有所期望。如果兼容性不理想,从ASP.NET 1.1 迁移到ASP.NET 2.0会带来很大的成本与风险。自己开发的程序可以在ASP.NET 2.0上重新编译,可程序中所用的第三方组件呢?

那我们拿博客园的程序做个试验吧。对程序不作任何修改,直接在IIS管理器中将ASP.NET切换至2.0, 并将*.*的映射改为ASP.NET 2.0。

程序安装在本机的blog虚拟目录中,首先我访问地址:http://localhost/blog(由于建立了通配符映射,IIS不会把地址改为http://localhost/blog/default.aspx), 出现第一个错误:

There is no build provider registered for the extension ’. You can register one in the <compilation><buildProviders> section in machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value ’Web’ or ’All’.

在ASP.NET 1.1中,这样访问是正常的,由于建立了通配符映射,请求由web.config中 <add verb="*" path="*" type="Dottext.Common.UrlManager.UrlReWriteHandlerFactory,Dottext.Common" />处理。而在ASP.NET 2.0 中,请求的资源需要有一个buildProvider来处理(在<buildProviders>中进行设置),而访问http://localhost/blog,并没有包含文件名,ASP.NET 2.0认为是一个扩展名为空的文件,找不到相应的buildProvider来处理(如果是aspx文件,默认的buildProvider是System.Web.Compilation.PageBuildProvider),所以会产生这样的错误。 我想应该可以通过在<buildProviders>中增加一个处理这类请求的buildProvider来解决这个问题,可是我在设置时遇到了一个问题:extension该如何设置?我尝试了以下几种设置都不行:

<add extension=".*" type="System.Web.Compilation.PageBuildProvider" />

<add extension="*" type="System.Web.Compilation.PageBuildProvider" />

<add extension="*.*" type="System.Web.Compilation.PageBuildProvider" />

<add extension="" type="System.Web.Compilation.PageBuildProvider" />(这个设置根本不允许)

不知是我没有找到设置的方法,还是extension本来就不支持通配符?如果是后者,这就是一个兼容性问题。但这种情况是比较特殊的,一般ASP.NET程序中不会遇到这样的情况。如果真的无法解决这个问题,那类似.Text这样使用通配符映射的方式将成为历史。如果谁知道解决方法,希望能得到您的指点。

那我们用正常的地址方式访问吧,输入http://localhost/blog/default.aspx ,OK!首页竟然显示出来了!当我正在赞叹ASP.NET 2.0的兼容性时,突然弹出了“Visual Studio Just-In-Time Debugger”窗口,窗口的错误信息为:

“An unhandled exception("System.Data.SqlClient.SqlException") occurred in aspnet_wp.exe”。出现这样的错误,真让人失望。难道ADO.NET也不兼容? 这时,我多次刷新页面进行测试,竟然出现了“Server Application Unavailable”错误。写到这,当我准备对ASP.NET 2.0的兼容性进行批评时。我突然想到是不是连接字符串设置的问题,ASP.NET 2.0的兼容性不应该这么差,我本来采用的是集成Windows验证(IntegratedSecurity=SSPI), 改成SQL Server验证试试。果然是Integrated Security=SSPI引起的,改过后,这两个错误就不出现了。Integrated Security=SSPI为什么会引起这个问题?是不是兼容性引起的?是不是通过更改设置可以解决?目前还不知道,以后再仔细分析吧。虽然存在上面所说的问题,但我觉得这样的兼容性还是可以接受的。

继续测试。网站首页、Blog首页可以访问,进入管理页面试试,又来一个错误:

The WebResource.axd handler must be registered in the configuration to process this request.

<!-- Web.Config Configuration File -->

<configuration>

<system.web>

<httpHandlers>

<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />

</httpHandlers>

</system.web>

</configuration>

一看就知道,这是与FreeTextBox相关的,明明web.config有这个设置,而且在ASP.NET 1.1中运行正常,看来是ASP.NET 2.0带来的问题。对于第三方控件的兼容问题,我们束手无策,只有两个选择:

1、等第三方控件升级后,再升级自己的程序;

2、放弃使用该控件。

继续往下测试,查看文章分类页面,出现错误:

Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Ambiguous match found.

Source Error:

Line 1: <%@ Control Language="c#" Inherits="Dottext.Web.UI.Controls.EntryList" %>

Line 2: <%@ Import Namespace = "Dottext.Framework" %>

Line 3: <h2><asp:Literal ID = "EntryCollectionTitle" Runat = "server" /></h2>

对这样的错误我目前是束手无策,以后再分析。

今天就测试到这吧!

由于刚刚接触ASP.NET 2.0, 如果文章中有不妥之处,欢迎指正。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有