当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  常见的 Web 项目转换问题及解决方案(转载) 8

 常见的 Web 项目转换问题及解决方案(转载) 8

点击次数:23 次 发布日期:2008-11-26 12:02:51 作者:源代码网
源代码网推荐      问题 22:模糊引用与命名冲突
源代码网推荐  
源代码网推荐  .NET Framework 2.0 添加了大量的新命名空间和类。其中的一些可能会导致与 ASP.NET 1.x 应用程序发生冲突。例如,新增的个性化功能通过 Profile、Membership 和 MembershipUser 的名称引入类。特别是 Profile 名称,它被那些想要跟踪用户信息的开发人员广泛使用。因此,如果应用程序中有一个 Profile 类,并且您尝试使用任何新增的个性化功能,那么您可能会遇到有关模糊类引用的编译器警告。
源代码网推荐  
源代码网推荐  如何修复
源代码网推荐  
源代码网推荐  提前规划命名冲突可能相当困难。您将希望快速浏览新增的 ASP.NET 类。如果看到可能与应用程序已有的名称冲突的任何名称,您可能会考虑使用显式命名。例如,使用 System.Web.Security.Membership 而不是导入/使用 System.Web.Security,然后使用 Membership 类。
源代码网推荐  
源代码网推荐  问题 23:多次调用事件处理程序
源代码网推荐  
源代码网推荐  由于转换向导合并代码隐藏文件和 aspx 页的方式,您可能会遇到一个事件被调用两次的情况(例如,网页加载)。如果您的代码隐藏文件中存在事件捆绑代码,但这些代码不在 InitializeComponent 方法中,就可能出现这种情况。转换向导只能删除 InitalizeComponent 方法中重复的捆绑。
源代码网推荐  
源代码网推荐  您可能要花一段时间才会注意到该错误,因为在大多数情况下,第二个事件激活是无害的。然而,如果您确实发现发生了多次自动调用的事件,您应该检查已转换的代码隐藏文件,看看处理程序是否捆绑到该事件两次。如果是这样,您必须手动删除第二个捆绑。
源代码网推荐  
源代码网推荐  如何修复
源代码网推荐  
源代码网推荐  通过扫描现有代码并确保代码隐藏文件的 InitialzeComponent 函数中包含所有事件捆绑,或者通过在页面中设置 AutoEventWireUp=False,可以完全避免此问题。
源代码网推荐  
源代码网推荐  问题 24:代码隐藏文件移到 App_Code 文件夹中
源代码网推荐  
源代码网推荐  转换向导运行后,您可能会发现一些代码隐藏文件(例如,*.aspx.cs 或 *.ascx.vb)移到了 App_Code 文件夹。
源代码网推荐  
源代码网推荐  这通常表示您的内容页有一条错误的 Codebehind 指令,并且没有正确设置为代码隐藏文件。换言之,转换向导无法确定代码隐藏文件实际上已经捆放到特定的 aspx 页。
源代码网推荐  
源代码网推荐  转换向导会自动将所有独立类文件(例如,*.cs 或 *.vb)移到 App_Code 文件夹中。如果有一条错误的 Codebehind 指令,则代码隐藏文件将被看作为独立类文件并移到 App_Code 文件夹中。
源代码网推荐  
源代码网推荐  注 Web 服务文件(例如,*.asmx 和 *.asmx.cs)与通常的内容页和它们的代码隐藏页不同。一个 Web 服务文件的代码隐藏文件就意味着移动到 App_Code 文件夹,因此如果您找到一个,就表面没有错误。
源代码网推荐  
源代码网推荐  也有可能一个 Web 窗体或用户控件迁移两次。有关更正该问题的方法,请参阅 Multiple Web Projects Referencing the Same Files。
源代码网推荐  
源代码网推荐  如何修复
源代码网推荐  
源代码网推荐  转换前,通过确保所有内容页中的 Codebehind 指令设置正确,可避免此问题。
源代码网推荐  
源代码网推荐  转换后,将代码隐藏文件移到相关内容页所在的文件夹中,并更正页的 Codefile(在 ASP.NET 2.0 中进行了重命名)指令以指向该代码隐藏文件。
源代码网推荐  
源代码网推荐  问题 25:多个项目引用一个 Web 项目
源代码网推荐  
源代码网推荐  在 Visual Studio .Net 2003 中,一个项目引用一个 Web 项目的程序集是无效的。这在 Visual Studio 2005 中不起作用,因为 Web 项目创建多个程序集,并且程序集的文件名会因不同的生成而异。
源代码网推荐  
源代码网推荐  如何修复
源代码网推荐  
源代码网推荐  转换之前,您需要将常用的共享代码移到单独的类库中,并引用该库。
源代码网推荐  
源代码网推荐  如果您要使用共享代码控件,则必须创建基类,这些基类存在于其他项目要引用的类库中,并让 Web 项目的用户控件从这些基类派生。
源代码网推荐  
源代码网推荐  有关此设计模式的更多信息,请参阅 将 Web 项目转换到 Visual Studio 2005 的分步指南。
源代码网推荐  
源代码网推荐  问题 26:共享相同的代码隐藏文件
源代码网推荐  
源代码网推荐  可能会有多个页面共享同一个代码隐藏类文件。这可能是由用户的设计引起的,也可能是复制 Web 窗体或用户控件而没有正确更新 @Page 指令的结果。
源代码网推荐  
源代码网推荐  这样会使 ASP.NET 2.0 编译器产生混淆,它希望每个 Web 窗体或用户控件包含唯一一个代码隐藏文件。运行已转换的代码时,您可能会收到生成错误或无效的运行时行为。
源代码网推荐  
源代码网推荐  如何修复
源代码网推荐  
源代码网推荐  转换之前,请将代码更改为每个 Web 窗体和用户控件使用一个唯一的代码隐藏文件。
源代码网推荐  
源代码网推荐  如果您希望在几个 Web 窗体或用户控件之间共享公共元素,则将这些公共元素移到一个基类中,并让 Web 窗体或用户控件从该基类中派生。
源代码网推荐  
源代码网推荐  问题 27:部分转换的解决方案
源代码网推荐  
源代码网推荐  在 Visual Studio .NET 2003 和 Visual Studio 2005 中,有可能有一个既包含 Web 项目又包含客户端项目的解决方案,例如,C# 或 Visual Basic 类库或 Windows 应用程序
源代码网推荐  
源代码网推荐  如果要使用 express 产品(例如,Visual Web Developer 或 Visual Basic Express Edition),您将只能转换与该 express 产品相关的解决方案中的项目。例如,如果您正在使用 Visual Web Developer,并且打开了一个带有 Web 项目和 Visual Basic 类库项目的解决方案,则只会转换 Web 项目,这因此产生一个部分转换的解决方案。
源代码网推荐  
源代码网推荐  如何修复
源代码网推荐  
源代码网推荐  您应该使用 Visual Studio 2005 的 Standard、Professional 或 Team System 版本转换包含多个、混合项目类型的解决方案。
源代码网推荐  
源代码网推荐  如果不可能这么做(您只有一个 Express 版本),您应该新建一个只包含支持的项目类型的解决方案。
源代码网推荐  
源代码网推荐  问题 28:没有针对 C# 的命令行迁移
源代码网推荐  
源代码网推荐  通过使用“devenv.exe /upgrade”命令(其中 是一个 Visual Basic Web 项目文件或包含这样文件的解决方案),Visual Basic Web 项目的命令行迁移是可能的。
源代码网推荐  
源代码网推荐  遗憾的是,在产品周期的后期会发现 C# 错误:为 Web 项目转换向导提供了无效的 C# 代码模型。因此,在命令行 C# Web 项目转换期间,Web 应用程序中会引入错误。
源代码网推荐  
源代码网推荐  因为与通过用户界面进行转换相比,命令行转换被看作辅助功能,因此对此错误进行 C# 修复会影响 Visual Studio 2005 的发布日期,因此最新发布版本中没有修复此错误。
源代码网推荐  
源代码网推荐  如何修复
源代码网推荐  
源代码网推荐  虽然没有修复,但替代方案是使用用户界面打开并转换 Web 项目或包含该 Web 项目的解决方案。
源代码网推荐  
源代码网推荐  问题 29:Batch = True 或 False
源代码网推荐  
源代码网推荐  如同 Web 项目更改中提到的那样,ASP.NET 编译器的默认行为是将一个文件夹中的所有 Web 窗体和用户控件编译到它自己的程序集中。可以在 Web.config 中设置 Batch 属性以更改编译器的行为。
源代码网推荐  
源代码网推荐  例如,以下代码段将指导编译器将给定的 Web 窗体或用户控件编译到它自己的程序集中(比正常情况下创建更多的程序集)。
源代码网推荐  
源代码网推荐  文件 ASP.NET 2.0 代码
源代码网推荐  Web.config
源代码网推荐   <configuration> <system.Web> <compilation batch="false"> </compilation> </system.Web></configuration>
源代码网推荐  
源代码网推荐  
源代码网推荐  使用该属性时,有几个问题应该知道。
源代码网推荐  
源代码网推荐  • 性能 — 如果 Batch=False,ASP.NET 编译器将为 Web 应用程序中的每个 Web 窗体和用户控件创建一个程序集。当您在 Visual Studio 2005 中使用 F5 生成时,它还会导致编译器进行全编译,而不是增量式编译。最终结果是,在部署时 Web 应用程序可能运行的较慢,您在 Visual Studio 2005 中的生成时间会显著增加。
源代码网推荐  
源代码网推荐  • 程序集引用 — Batch 属性可能会隐藏可能的中断的程序集引用(如果 Batch=True),甚至会引入循环引用(如果 Batch=False)。
源代码网推荐  
源代码网推荐  
源代码网推荐  如何修复
源代码网推荐  
源代码网推荐  在一个 Web 项目上运行了转换向导后,应该临时设置 Batch=False,同时完成手动步骤以转换 Web 项目。这样可以确保您发现所有程序集引用问题。
源代码网推荐  
源代码网推荐  Web 项目完全转换后,您应该设置 Batch=True 以进行正常开发和部署。
源代码网推荐  
源代码网推荐  注 部署 Web 应用程序时,您应该在 Batch=False 的情况下进行以下检查之一,以确保在开发 Web 应用程序过程中没有引入任何程序集引用问题。进行了该检查之后,一定要再次设置 Batch=True。
源代码网推荐  
源代码网推荐  返回页首
源代码网推荐  小结
源代码网推荐  将应用程序从 Visual Studio .NET 2003 转换到 Visual Studio 2005 通常是一个顺畅的过程。然而,您必须确保正确配置了开发和部署环境。您还必须评估转换报告,以解决转换报告没有处理的任何潜在问题。您可能还希望提前查看应用程序并且提前规划,以避免转换中已知的问题。
源代码网推荐  
源代码网推荐  将来的发行版本
源代码网推荐  
源代码网推荐  由于 Web 项目迁移的重要性,因此我们始终期待反馈以便丰富这方面的经验。即使在 2005 年 11 月正式发布了 Visual Studio 2005 后,我们仍计划根据需要更新迁移向导。如果您有问题或反馈,请将它们发送到 http://forums.asp.net 上的“Visual Studio .NET 2003 to Visual Studio 2005 Migration”论坛上。
源代码网推荐  
源代码网推荐  返回页首
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华