Как упоминал qstarin, утилизация AppPool, похоже, выбивает сборки.Вот оригинальное обсуждение Spark относительно этой проблемы:
http://groups.google.com/group/spark-dev/browse_thread/thread/dbee06a0d1b2766f#
В общем, похоже, что проблема вызвана тем, что Spark пытается скомпилировать представления ДО того, как AppPool успел загрузить всесобрания.
Выбор сборок один за другим все же вызывал у меня случайные сбои, поэтому я настроил код в этом посте для обсуждения и загрузил его в качестве первой строки в Application_Start ().С тех пор я со временем вытолкнул около десятка приложений и больше не сталкивался с проблемой прекомпиляции.
private void PreLoadAssemblies()
{
// Deal with the compiling issue with Spark.
var initialAssemblies = AppDomain.CurrentDomain.GetAssemblies();
var di = new DirectoryInfo(Server.MapPath("~/bin"));
var files = di.GetFiles("*.dll");
foreach (var fi in files)
{
var found = false;
//already loaded?
foreach (var asm in initialAssemblies)
{
var a = Assembly.ReflectionOnlyLoadFrom(fi.FullName);
if (asm.FullName == a.FullName)
found = true;
}
if (!found)
Assembly.LoadFrom(fi.FullName);
}
}
, а затем ваш Application_Start ():
protected override void Application_Start(object sender, EventArgs e)
{
PreLoadAssemblies();
base.Application_Start(sender, e);
//Whatever else you normally do in Application_Start():
MvcHandler.DisableMvcResponseHeader = true;
ViewEngineManager.Configure(ViewEngines.Engines);
RouteManager.RegisterRoutes(RouteTable.Routes);
new InjectionManager().StartNinject();
}