原来上网我下了很多VS2003的Asp.net的Demo。而我用的是VS2005,我在使用这些小样时,基本上绝大部分基于VS2003的Asp.net工程都因为少数文件无法转换而无法加载工程,为此我也后悔很久,后来终于让我找到了解决办法。
Asp.net基于VS2005工程与以往版本的工程的***区别就是用分部类(partial)取代了代码隐藏(Codebehind)。
于是我采取的方法是:
1.用打开网站的方式打开这个工程。这样VS2005也会进行转换,而且也会报错,但与直接打解决方案无法加载不同的是,这一次它展开了网站的所有文件。如果你现在运行工程,也不会成功的。
2.打开filename.aspx文件到源代码视图,将@Page指令中的属性“Codebehind”改为“CodeFile”,
3. 将与这对应的Codebehind文件filename.aspx.cs,将继承于System.Web.UI.Page的类定义class前加上partial关键字。
4.运行该工程,它会提示你在filename.aspx中已经包含controlname的定义,跟踪错误到filename.aspx.cs,将那些被指示错误的重复定义删去。
5.然后重复2-4步直至所有的文件都改过来,再运行工程应该就可以运行成功了。不过也许会报几个警告说某某已经过时,不用去管它。
#t#我用这个方法将那些老顽固(包括2003以及2002的工程)都成功转换了,真的是屡试不爽。这只不过是我自己总结出来的方法,也许有人有更好的办法,如果有更好的方法也请指点。我的机子配置是:操作系统是Win2003,一开始装的平台是VS2005工程,.net2.0,由于项目的需要,所以装了.net1.1,平台用的是vs2003,在运行项目时,系统报错:自动附加到计算机“SOFTSERVER”上的进程“[3940] w3wp.exe”失败,后来发现原因是.net2.0和.net1.1有冲突,IIs中的Asp.net选项卡中的Asp.net版本默认为2.0。
解决方法:
需要在IIS中重新注册一下ASP.NET,在MS-DOS中运行:
C:\windows\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i或在程序里面的Microsoft Visual Studio .NET 2003->Visual Studio .NET 工具->Visual Studio .NET 2003 命令提示执行aspnet_regiis.exe –i。
修复成功后,就可以在IIS中打到1.1的.net版本
选择IIs中的Asp.net选项卡中的Asp.net版本默认为1.1。
自动附加到计算机“SOFTSERVER”上的进程“[3940] w3wp.exe”失败的错误信息没有了。
解后又出现了新问题,提示:
试图运行项目时出错:无法在WEB服务器上启动调试.未能启动ASP.NET或ATL SERVER 调试. 验证服务器上是否正确安装了ASP.NET或ATL SERVER
解决方法:
在IIS中的WEB服务扩展中,有两项:asp.netv1.1.4322和asp.netv2.0.50727两个选项,原来是asp.netv2.0.50727的状况已经允许,而asp.netv1.1.4322的状况是禁止的,VS2005工程原因找到了,
就是把asp.netv1.1.4322的状况也改为允许状态。
问题解决了!!!!