如何将Asp.net 2.0网站部署到服务器
2009-03-27 02:22
453 查看
.net 2.0较之于.net 1.1的一个改进就是开发web程序时没有了bin目录,对类库的引用自动放在web.config文件中。好处就是不用像以前那样显式地在bin目录下添加相关的dll文件,给开发的过程带来了便利,正由于这个,也导致了部署本地开发好的web程序到服务器的时候产生一些问题。是不是发现在本地运行一切正常的程序发布到服务器的时候不工作了,很有可能就是你在web程序中引用了.net 框架类库之外的第三方类库。
因此,无论你用xcopy方式、vs下的预编译方式、复制方式还是命令行模式下的aspnet_compiler编译方式来发布到远程服务器,在这之前你还得像.net1.1那样在你的web程序根目录下添加bin文件夹,并且将所有在你的网站中用到的第三方类库都放到该目录下。查看web.config文件能清楚的知道在你的程序中用到了哪些第三方类库。看下面的代码段:
1<assemblies>
2 <add assembly="DevExpress.Web.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
3 <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
4 <add assembly="DevExpress.Data.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
5 <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
6 <add assembly="DevExpress.Web.ASPxGridView.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
7 <add assembly="DevExpress.Web.ASPxEditors.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
8 <add assembly="DevExpress.Web.ASPxSpellChecker.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
9 <add assembly="DevExpress.Web.ASPxTreeList.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
10</assemblies>
第2、4、6、7、8、9行所引用的就是非.net2.0基础类库,因此需要将这几条所对应的dll文件复制到bin目录下,是不是这样就算完了?未必,看web.config中的下面代码:
<httpHandlers>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
这段代码是用到asp.net ajax控件时产生的,如果你装了Atalas就知道。因此也必须把System.Web.Extensions.dll复制到bin目录。当然,可能在你的程序并没有用到ajax.net控件,也就不必如此了,只是说需要处理所有类似的问题。
当所有必须的dll文件都复制到bin目录下时,离成功部署也就不远了,其他操作按部就班就可以了。
PS:有时候在网站开发的过程中就想测试在远程服务器的可行性,不过这对大多数程序员来说并不现实也不灵活(但很可靠)。鉴于此,推荐用虚拟机测试,虚拟机平台为wmware workstation。在虚拟机上安装服务器操作系统,如windows server 2000或2003(winxp也可以)安装好IIS和Framework2.0就可以测试了。有关虚拟机的更多介绍google一下就有了,有什么问题也可以和我交流。
下篇随笔预告:Dxperience本地化方法,本人已成功实现了汉化并部署。
因此,无论你用xcopy方式、vs下的预编译方式、复制方式还是命令行模式下的aspnet_compiler编译方式来发布到远程服务器,在这之前你还得像.net1.1那样在你的web程序根目录下添加bin文件夹,并且将所有在你的网站中用到的第三方类库都放到该目录下。查看web.config文件能清楚的知道在你的程序中用到了哪些第三方类库。看下面的代码段:
1<assemblies>
2 <add assembly="DevExpress.Web.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
3 <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
4 <add assembly="DevExpress.Data.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
5 <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
6 <add assembly="DevExpress.Web.ASPxGridView.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
7 <add assembly="DevExpress.Web.ASPxEditors.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
8 <add assembly="DevExpress.Web.ASPxSpellChecker.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
9 <add assembly="DevExpress.Web.ASPxTreeList.v8.3, Version=8.3.6.0, Culture=neutral, PublicKeyToken=5377C8E3B72B4073"/>
10</assemblies>
第2、4、6、7、8、9行所引用的就是非.net2.0基础类库,因此需要将这几条所对应的dll文件复制到bin目录下,是不是这样就算完了?未必,看web.config中的下面代码:
<httpHandlers>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
这段代码是用到asp.net ajax控件时产生的,如果你装了Atalas就知道。因此也必须把System.Web.Extensions.dll复制到bin目录。当然,可能在你的程序并没有用到ajax.net控件,也就不必如此了,只是说需要处理所有类似的问题。
当所有必须的dll文件都复制到bin目录下时,离成功部署也就不远了,其他操作按部就班就可以了。
PS:有时候在网站开发的过程中就想测试在远程服务器的可行性,不过这对大多数程序员来说并不现实也不灵活(但很可靠)。鉴于此,推荐用虚拟机测试,虚拟机平台为wmware workstation。在虚拟机上安装服务器操作系统,如windows server 2000或2003(winxp也可以)安装好IIS和Framework2.0就可以测试了。有关虚拟机的更多介绍google一下就有了,有什么问题也可以和我交流。
下篇随笔预告:Dxperience本地化方法,本人已成功实现了汉化并部署。
相关文章推荐
- 如何将带Dxperience组件的Asp.net 2.0网站部署到服务器(转载)
- IIS7如何部署asp.net网站
- 如何在IIS6,7中部署ASP.NET网站
- 从无到有,教你如何在Server2003上部署一个Asp.Net的网站
- 教你如何在Server2003上部署一个Asp.Net的网站
- 海洋工作室——网站建设专家:如何在IIS6.0中部署asp.net mvc程序
- ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上
- 如何在IIS6,7中部署ASP.NET网站
- Windows Server 2003(企业版)上IIS部署Asp.net 2.0网站过程和注意点
- 如何在IIS6,7中部署ASP.NET网站
- 采用负载均衡,部署了两个ASP.NET 2.0的站点服务器碰到的问题
- ASP.NET 2.0网站部署
- 从无到有,教你如何在Server2003上部署一个Asp.Net的网站(转载)
- ASP.NET 2.0使用user profile储存信息前,如何部署aspnetdb.mdf和正确建立连接
- 解决 web服务器部署常见问题,server application unavailable 和 程序无法连接数据库 的问题(asp.net 2.0 + oracle9i + winXP)
- 如何在IIS6,7中部署ASP.NET网站
- 如何在IIS6,7中部署ASP.NET网站
- [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
- asp.net网站部署在云服务器windows server 2008上
- [Asp.Net]如何安装与部署asp.net网站