ASP.NET站点发布与复制?(ASP.NET WebSite Publishing vs. Cop

2019-07-17 17:24发布

我也遇到了很多与出版问题,当你需要对代码的微小变化,有时生成的DLL文件(例如DLL文件像default.aspx.CS公布时)不能说IIS代码隐藏的识别错了或什么。 对不起,我不记得确切的错误信息。 我希望你明白我的意思,在这一点上。

因此,我通常做一个简单的Copy Paste操作,而不是出版。

你能告诉我什么我不使用发布方法失踪? 如何发布好? 或者你更喜欢哪一个,为什么?

基本上,它的一个优点和缺点的情况。

谢谢

Answer 1:

嗯,这取决于你的意思是“复制”的内容:

随着Publishing你有选择, pre-compile应用程序的全部或部分。 您可以publish到本地文件夹中的文件系统(而不是你的目标/主机),然后复制更新的文件(S)(只)。 如果您正在“代码背后”(C#/ VB代码)的变化,这意味着你可能只需要“复制” /覆盖dlls 。 不用说,如果你做了“内容”的变化(HTML /剃刀/脚本/等)的变化,那么你需要复制/覆盖那些为好。

如果你是新来的部署,你会发现自己简单地复制/覆盖“一切”,这是要走的最安全的方式 。 一旦你获得更多的经验,你就会“认识”的资产,你只需要更新(一个或几个dlls和或内容的代码,而不是“一切”)。 没有什么神奇的这一点,通常情况下,它只是在看DLL /文件的时间戳你以后的事情published (本地)或rebuild你的web应用。

我建议你做一个local publish ,所以你可以看到什么是真正需要你的服务器上。 发布到本地文件系统/文件夹中的文件是什么需要做你的主机/服务器上。 这样做将可视化和消除任何“神秘”出现于Publishing

  • 你会看到什么是真正需要(在服务器上)与什么不
  • 你会看到该文件timesstamps这将帮助你认识到什么文件实际上是改变VS那些没有(因此并不需要更新)。
  • 一旦你得到了它的窍门,你将不再需要“复制” / ftp“的一切”,只是更新实际上修改(只)文件。

因此,“拷贝”可能意味着以上,或者如果你的意思是你只会所有的开发代码(原始拷贝(vb/cs)html/cs/vb )到你的主机,那么这意味着你的网站将被dynamically compiled为需要每个资源/请求(没有什么是pre-compiled )。 也“容易”,但你失去pre-compilation ,这意味着存在时,每个网页的请求/所需的延迟(ASP.net需要动态编译)。 此外,您也暴露在服务器上的源代码。 它可能没有多大的意义根据您的情况,但它是一两件事要考虑。

这里有更多关于预编译和选项信息 。



Answer 2:

假设我们考虑一个aspx页面和隐藏文件的aspx.cs代码中,有部署你的网站的三种方式:

  1. 您既可以复制到IIS。 在ASPX会被编译时所述第一请求到.CS然后两个.cses将被编译到一个临时的.dll
  2. 你可以在“发布”到IIS,这将编译隐藏类代码以.dll文件,但将复制ASPX不变。 在ASPX将被翻译到的.cs,然后在所述第一请求.dll文件
  3. 你可以在“发布”的网站,然后手动与aspnet_compiler预编译它。 出版将编译后面的代码为.dll的先前但随后的预编译通过删除其内容和移动编译后的代码到另一个.dll文件清除出你的.aspx文件。

这三款机型都各有利弊。

第一种是最简单的增量更新,但在同一时间是最开放的不必要的修改。

其次也很容易,可以从VS调用,它将关闭在服务器上的一些不需要修改的可能性,但.aspxses还需要时间在第一次请求编译

三所花费的时间和一些手动操作,但是阻止任何改变,也加速了热身的网站作为资产的编译是没有必要的。 这是伟大的共享环境。



文章来源: ASP.NET WebSite Publishing vs. Copying?