我的发布网站部署在不同的专用服务器上。通常我们从客户端重新获取页面级别的chaneges,这需要在客户端和服务器端代码中进行更改,我们首先在本地进行更改然后在服务器上部署带有服务器端代码的页面,而没有完整的发布构建代码,因为我的客户端稍微请求了一些更改,当客户对页面更改感到满意时,我将发布版本放在服务器上。我想知道发布和非发布代码部署的主要区别是什么?当我将aspx与aspx.cs放在服务器上时它工作得很好,那么为什么部署发布版本很重要。
答案 0 :(得分:1)
当我将aspx与aspx.cs放在服务器上时它运行正常然后它为什么 部署发布版本非常重要。
这主要是效率问题。当您将ASPX和ASPX.cs(代码隐藏)文件并排放在一起时,当有人第一次请求页面时,该代码隐藏文件将被编译到自己的程序集(.dll文件)中。您实际上是将源代码推送到服务器,而不是编译代码。如果对每个ASPX文件执行此操作,最终可能会有数十个到数百个单独的单个程序集(每个ASPX文件一个),并且一个缺点是编译器首次将源代码转换为二进制dll时的延迟。另一个原因是你的服务器必须管理大量的程序集,而不只是一个。
部署发布版本时,编译器会将所有代码隐藏文件合并到一个程序集中。它还会稍微改变ASPX文件中的@Page指令。最终没有部署到服务器的源代码,只有一个二进制DLL,这样效率更高。
因此,如果您只是进行ASPX更改(类似样式,纯HTML等),只要@Page指令匹配预编译并已部署的代码隐藏,就可以单独推出它们。但是,当您更改ASPX和代码隐藏时,您应该进行发布,因为它将导致不同的合并代码隐藏程序集,必须将其部署到服务器上的bin文件夹中。
有时我要做的是将ASPX和代码隐藏一起部署在服务器上进行测试,一旦我确定它有效,请返回并执行发布部署以将代码隐藏更改烘焙到合并的DLL中。然后将它们推送到文件(dll和ASPX),删除代码隐藏源,并完成。