2013-04-24 46 views
1

我的发布网站部署在不同的专用服务器上。通常我们会从客户端收回页面级别的chaneges,这需要在客户端和服务器端代码中进行更改,我们首先在本地完成了更改,然后在服务器上部署该服务器端代码的页面,而没有完整的发布构建代码,因为我的客户端要求稍微更改agaian并再次,当客户满意页面的变化,然后我把服务器上的发布版本。我想知道发布和非发布代码部署中的主要区别是什么?当我把aspx.cs放在服务器上时它工作正常,那么为什么部署发布版本很重要。asp.net发布和非发布代码部署

+0

可能重复的[ASP.NET网站发布与复制?](http://stackoverflow.com/questions/14102521/asp-net-website-publishing-vs-copying) – Damith 2013-04-24 10:19:50

+0

我经历这个职位,我只是想知道是否有一段时间我没有发布部署页面代码,然后什么可能的影响可以,虽然目前它的工作正常,它是complie时间问题或任何其他事情 – khawarPK 2013-04-24 10:31:46

回答

1

当我把aspx.cs放在服务器上时它工作正常,那么为什么它是 对于部署发布版本很重要。

这主要是效率问题。当您将ASPX和ASPX.cs(代码隐藏)文件并排放置在服务器上时,当有人第一次请求该页面时,该代码隐藏文件将被编译到其自己的程序集(.dll文件)中。实际上,您将源代码推送到服务器,而不是编译后的代码。如果你对每个ASPX文件都这样做,最终可能会有几十到几百个单独的程序集(每个ASPX文件一个),一个缺点是编译器首次将源代码转换为二进制DLL时的延迟。另一个是你的服务器必须管理大量的程序集而不是一个。

当您部署发布版本时,编译器会将所有代码隐藏文件合并到一个程序集中。它也会稍微改变你的ASPX文件中的@Page指令。你最终没有将源代码部署到服务器,只有一个二进制DLL,这是更有效的。因此,如果您只是对ASPX进行更改(如样式,纯HTML等),只要@Page指令与预编译并已部署的代码隐藏匹配,就可以单独推送它们。但是,当您更改ASPX和代码隐藏时,您应该执行发布操作,因为它会导致不同的合并代码隐藏程序集,它必须部署到服务器上的bin文件夹。

有时我会做的是部署ASPX和代码隐藏在一起来测试服务器上的东西,一旦我确定它的工作原理,回去做一个发布部署,将代码隐藏更改烧入合并的DLL。然后只需将它们推送到文件(dll和ASPX),删除代码隐藏源并完成。

+0

嗯,很好,这意味着我们可以部署代码aspx和代码隐藏文件因为很容易进行快速修改,一旦进行了验证,然后将部署发布版本用于提高效率。 谢谢 – khawarPK 2013-04-25 06:47:44