是什么让一个预编译的Visual Studio的网页被更新,而不是有什么区别?(What is th

2019-07-31 00:15发布

我已经建立了一个网站,多次使用默认的“允许此预编译站点可更新”,然而在最近的编译网站是很破的。 与该.dll的(删除和替换它们,在bin)我注意到网站开始重新工作的某些部分,但如果我把所有的原始.dll文件的在现场被打破玩耍后。

我使用aspx页面与一些Ajax的Web扩展。 这些最近添加,可能是问题的根源。 我未选中“允许此预编译站点可更新”并把它添加各种额外的编译代码的文件到bin,以及所有与该网站的问题,走了......这是怎么回事呢? 是什么区别?

似乎没有要在路上有什么区别,我不是更新网站,只是一个单纯的从Visual Studio每次发布。

任何见解将不胜感激。

Answer 1:

取消选中“允许此预编译站点可更新”编译.aspx页,而不仅仅是代码文件(.VB / .CS)。 离开它检查可以让你做它已被部署而无需重新编译后的.aspx文件的某些变化(例如=移动控件的位置或添加一些额外的HTML标记)。

读你的部署问题描述之后,似乎更可能是错误,因为需要IIS应用程序池刷新。 在低端VPS,有时是很有道理的,如果你有这样的奢侈反弹(重新启动)它。

阅读关于网站预编译的详细信息,下面的MSDN文章。

http://msdn.microsoft.com/en-us/library/399f057w(v=vs.80).aspx

http://msdn.microsoft.com/en-us/library/ms247286(v=vs.80).aspx



Answer 2:

我有我自己的问题,基于什么NoAlias说一个答案。 我读了两个链接,发现如下:

预编译仅用于部署
当你只预编译部署,编译器从在运行时通常编译几乎所有的ASP.NET源文件生成组件。 这包括在页面的.cs和的.vb类文件的程序代码,其他代码文件和资源文件。 编译器将删除输出所有源和标记。 在所得到的布局中,为每个包含指向该页面的适当组件的.aspx文件(扩展.compiled)的生成编译的文件。 要更改的网站,其中包括页面的布局,你必须改变原有的文件,重新编译网站,并重新部署布局。 唯一的例外是在站点配置; 您可以更改生产服务器上的Web.config文件,而无需重新编译网站。 此选项提供了最大程度的为您的网页保护和启动时的最佳性能。

预编译的部署和更新
当您预编译的部署和更新,编译器的全部源代码(除在单个文件的网页页面代码),从正常生产的组件,如资源文件的其他文件生成组件。 编译器文件转换成的.aspx使用编译后的代码隐藏模型,并将它们复制到布局单个文件。 此选项可以编译它们之后作出在您的网站的ASP.NET网页有限的变化。 例如,你可以改变的控制,颜色,字体和页面等外观方面的安排。 您还可以添加控件,只要它们不需要事件处理程序或其他代码。 当网站第一次运行时,ASP.NET为了从标记创建输出进行进一步的编辑。 注意

预编译的更新站点不允许多个页面引用相同的CodeFile类。

我最近更改了网站,包括引用相同的CodeFile(背景相同的VB代码)每个页面有稍微不同的HTML属性2个aspx页面,但具有相同的CodeFiles需要,所以我的第二个ASP页我删除自动生成的VB代码文件,然后在HTML引用的不同的CodeFile。

如上所述,预编译更新的网站不允许多个页面引用相同的代码文件类。 这就是为什么一些我的网页没有工作。

从那天起,我要避免使用默认的复选框,此时“允许此预编译站点可更新”; 我的网站利用VB CodeFiles引用我多页它必须保持选中。

结论:多aspx页面引用相同的CodeFile需要进行预编译,才能正常运行。 这意味着该网站将无法拥有,而无需重新deplyoying它所做的任何更改。



文章来源: What is the difference between allowing a precompiled Visual Studio Web Page to be updatable and not?