- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
所以,我的一个网站有一个 PreApplicationStartMethod,它应该在应用程序启动之前运行:
[assembly: PreApplicationStartMethod(typeof(ServiceStackAppHost), "Start")]
此方法进行一些引导并依赖于设置的一些配置。
现在,我想将网站编译作为我的自动构建过程的一部分 - 所以我调用了 aspnet_compiler.exe,但它失败了,因为它运行 PreApplicationStartMethod:
AfterBuild:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe -v temp -p C:\Projects\ error ASPRUNTIME : The pre-application start initialization method Start on type RedactedNameSpace.ServiceStackAppHost threw an exception with the following error message: Resolution of the dependency failed, type = "..."
如何避免aspnet_compiler.exe在编译网站时调用PreApplicationStartMethod?
最佳答案
简短的回答是您无法阻止它运行,这是设计使然但是您可以解决该问题。
原因是 PreApplicationStartMethod
(或构建在它之上的 WebActivator)可用于实际影响编译的事情,如果您省略它,站点可能无法编译。
举个例子,您可以在 PreAppStart
方法中将命名空间添加到编译中,然后影响 Razor 页面的编译。
显然,当您使用 aspnet_precompiler 时,并不是每个 PreAppStart
方法都需要运行,但我们会运行所有这些方法以备不时之需。
如果其中的代码在 aspnet_compiler 下中断,可能需要在 PreAppStart
方法中添加条件逻辑以检测情况并省略运行代码。
您可以查看 System.Web.Hosting.HostingEnvironment.InClientBuildManager
属性以确定您的 PreAppStart
方法是否在 aspnet_compiler.exe 的上下文中运行(它将在其中运行为 true
),或在运行时(它将为 false
)。 InClientBuildManager
也适用于在VS中建站,其使用的代码路径与aspnet_compiler.exe基本相同。
请注意,WebActivator 还支持 PostApplicationStartMethod
,但这些不会在 aspnet_compiler 下运行。该代码在 Application_Start
之后 运行,因此它可能适合也可能不适合您的场景。但它可能是适合您的解决方案。
没有直接关系但对调试有用:您可以将 -errorstack 传递给 aspnet_compiler.exe,以便在出现错误时获得更完整的堆栈。
关于c# - 避免 aspnet_compiler 运行 PreApplicationStart 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13642691/
我在通过命令行发布解决方案时遇到问题。它在各种项目上间歇性地失败,但每隔一段时间就会成功。我同时收到空引用错误和“运行线程的应用程序域已被卸载”,这可能只是具有竞争条件的空引用。它似乎只在具有 Web
如果我使用本地 Web 服务器进行开发,我可以在不安装 IIS 的情况下从命令行使用实用程序 aspnet_compiler 编译网站项目 (3.5) 吗? 谢谢 最佳答案 是的你可以。您必须指定将在
看了这篇[帖子][1]后,我想我应该尝试一下。 因此,在我的构建后事件中,我添加了... C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_co
我正在使用aspnet_complier命令构建网站,第一次编译完整的网站,即所有页面,但在网站上修改后,它再次编译所有页面。它应该只编译已更改或修改的页面。 其他事情是 1) 如何加速 aspnet
我正在尝试为我正在处理的项目制作一个 ASP.NET 编译工具。使用 aspnet_compiler 确实可以很好地工作,但自定义工具会更好地满足我们的目的。 但是,当我运行 ClientBuildM
在命令行中使用 aspnet_compiler.exe 警告时,是否有一个开关可以抑制特定的编译器警告? 我已经尝试自己修复错误,而不是忽略它们 - 它们是针对从未使用过定义的事件。我只是简单地注释掉
我们使用 Nant 和 devenv.com 构建我们所有的程序集,包括网站项目。然后我们将使用aspnet_compiler.exe 来编译发布的网站。 这是正确的做法吗?从历史上看,我们总是将 a
我对 msbuild 和 aspnet_compiler 还很陌生。 我正在使用 aspnet_compiler 来编译 Web 应用程序项目。现在我刚刚看到 MSBuild.exe 并注意到它将我的
我无法在我们的构建环境中构建我的 Web 应用程序(不是网站)。我们在我们的构建环境中使用 DMAKE(不幸的是,这是不可协商的,因此不允许使用 MSBUILD)以及通过调用 asp.net 预编译器
aspnet_compiler 似乎有两种模式: Target - 将整个站点复制到目标文件夹,生成 PrecompiledApp.config,生成的程序集进入 target\bin, View (
我有使用 RazorGenerator.MVC and RazorGenerator.MsBuild 的 MVC 5 应用程序.因此,我的 MvcBuildViews 设置为 false,因为不再需要
我需要从我维护的 bat 文件执行 aspnet_compiler,以自动从 CruiseControl.NET 中发布 ASP.NET 应用程序。 如果我手动打开 Visual Studio 命令提
我正在尝试为 ASP.NET MVC 3 网站编写构建脚本,以便在 Mono 上发布。虽然有些开发人员使用 Windows 进行开发,但该站点必须在 Mono 上构建,因为构建和 Web 服务器运行的
我希望使用命令行中的 aspnet_compiler.exe 编译我的 asp.net MVC 应用程序,以加快冷启动速度。 我想知道它如何确定是否应该进行发布或调试构建。总是释放吗?它是否取决于运行
所以,我的一个网站有一个 PreApplicationStartMethod,它应该在应用程序启动之前运行: [assembly: PreApplicationStartMethod(typeof(S
我已经创建了一个自定义 .proj 文件来构建我的网站项目的解决方案。它似乎一切正常并产生输出。但是,当我把它放在服务器上时,出现了关于“/Default.aspx 未预编译且无法请求”的错误。经过一
有没有办法让 aspnet_compiler 遍历所有 View 并返回所有错误,而不仅仅是当前 View 目录中的错误? 例如,假设我有一个包含一堆文件夹的项目...... Views Folder
在我们的构建过程中,我们运行 aspnet_compiler.exe针对我们的网站,以确保 ASP.NET/MVC 中的所有后期绑定(bind)的东西都实际构建(我对 ASP.NET 一无所知,但我确
我正在尝试让 Visual Studio 预编译将部署在 Azure 上的 ASP.NET 应用程序。我已将以下内容添加到我的 .csproj 文件中: 现在,当我要求 Vis
我希望 Visual Studio precompile my ASP.NET application用作 Azure Web 角色负载。所以我找到了this post这解释了如何调用 aspnet_
我是一名优秀的程序员,十分优秀!