1

我使用 Visual Studio 2010 Web 应用程序模板构建了一些在 WSS 3 上运行的自定义应用程序。当我编译应用程序时,Visual Studio 在 bin 目录中创建程序集文件,稍后我使用 WSS 3 将其复制到生产服务器(另一台机器)。编译后的应用程序 dll 文件被复制到 WSS 虚拟目录内的 bin 文件夹中并在那里运行良好。

随着项目需求/应用程序随着时间的推移而增长,我现在面临的问题是,第一次点击程序集会触发我想避免的动态编译。

即使应用程序运行良好,我也想在我的开发机器上使用 asp 预编译器,以减少第一次请求页面时的延迟。

我使用以下命令来预编译整个 Web 应用程序:

aspnet_precompile -v / -p PATH_TO_WEB_APPLICATION C:\WebApp -errorstack

编译运行良好,没有任何错误,我最终得到了几个 .compiled 文件以及 C:\WebApp\bin 文件夹中的 Web_App_xxxxx.dll 文件。

从这里开始,我对如何进行有点迷茫。

您能否给我一些建议,我需要将编译文件复制到生产服务器上的哪个文件夹?

他们需要进入服务器上的 bin 文件夹还是更好地进入 aspx 页面所在的文件夹?

此外,我想知道是否可以在没有 IIS 元数据库的情况下使用 -v 和 -p 开关在开发机器上预编译 Web 应用程序,然后在 WSS 中使用它?

我将所有文件从 C:\WebApp\bin 文件夹复制到服务器 bin 文件夹,但不幸的是,当使用进程监视器查看服务器事件时,csc 编译过程仍然启动。

干杯,

马蒂亚斯

4

2 回答 2

1

只需将文件放入 bin 文件夹中,一切都会正常工作。至于 -v 开关,如果你使用 -p 标志,你确实需要它,但我认为这也取决于你如何编译应用程序。查看此链接了解更多信息。不过,如果它是错误的/不正确的,我不相信它有什么大不了的。

这种场景听起来像是 Cruise Control .NET 环境的工作。

于 2010-06-15T20:01:22.743 回答
1

我找到了这个预编译问题的答案:

我认为第一次点击应用程序页面需要很长时间,因为 asp.net 需要编译它,我可以通过预编译节省一些时间。该应用程序在 WSS 上下文中运行,使用户能够转到 Web 表单并通过表单更新他/她的 Active Directory 配置文件。Exchange 全局地址列表也在 Exchange 林上更新,因此更改可以通过 Outlook 地址列表和 Communicator 看到。

包含报告等的完整解决方案代码大约是 6000 行 C# 代码。

我对由于行数导致编译缓慢的假设是错误的。

我为 asp.net 下载了以下修补程序:http: //support.microsoft.com/kb/961884

并在 web.config 中设置 optimizeCompilations="true",如下所述:

http://blogs.msdn.com/b/davidebb/archive/2009/04/15/a-new-flag-to-optimize-asp-net-compilation-behavior.aspx

http://www.paulliebrand.com/2009/09/18/sharepoint-development-to-bin-folder-and-extremely-slow-render-initial-render-times-solution/

现在应用程序的第一次点击要快得多。

非常感谢,

马蒂亚斯

于 2010-07-01T18:36:15.260 回答