我使用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页面所在的文件夹?
此外,我想知道是否可以使用-v和-p开关在没有IIS元数据库的开发机器上预编译Web应用程序,然后在WSS中使用它?
我将所有文件从C:\ WebApp \ bin文件夹复制到服务器bin文件夹,但遗憾的是,当在服务器事件中查看进程监视器时,csc编译过程仍然会启动。
干杯,
的Mathias
答案 0 :(得分:1)
只需将文件放入bin文件夹即可,一切正常。对于-v开关,如果你使用-p标志,你需要拥有它,但我认为这取决于你是如何编译应用程序的。请查看this link了解更多信息。如果错误/不正确,我不相信它会有什么大不了的。
这种情况听起来像是Cruise Control .NET环境的工作。
答案 1 :(得分: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”,如下所述:
现在应用程序的第一个命中要快得多。
非常感谢,
的Mathias