В моем случае я видел сообщение [AspNetCompiler] error ASPRUNTIME error message: Value cannot be null.
в TeamCity.
В полных журналах сборки более полезное сообщение внизу было:
error ASPRUNTIME : The pre-application start initialization method InitializePreStart on type MyApplication.MvcApplication threw an exception with the following error message: Value cannot be null.
Как оказалось, у меня возникла исключительная ситуация с помощью метода, который я определил с помощью PreApplicationStartMethod:
[assembly: System.Web.PreApplicationStartMethod(typeof(MyApp.MvcApplication), "InitializePreStart")]
namespace PrintFleet.PFE.RestService
{
public class MvcApplication : System.Web.HttpApplication
{
//....
public static void InitializePreStart()
{
// exception thrown here
}
}
}
Причиной в моем случае был мой предварительный метод загрузки настроек из реестра, и они не существовали на сервере сборки (но существовали на моем компьютере, поэтому он работал, когда я его собирал). Я понятия не имею, почему проекты веб-развертывания запускают этот код.
Я обернул все это в try..catch, который регистрирует фатальное сообщение (которое в моем приложении идет как в файл журнала, так и в журнал событий Windows). В сборках мне все равно, если он потерпит неудачу, так как ему ничего не нужно делать. В реальных установках, если настройки отсутствуют, приложение не будет работать (и поэтому журнал объясняет почему).
Теперь, по-видимому, проблема в активаторе веб-страниц. Я не удивлюсь, если в папке App_Start есть метод, использующий webactivor, который выдает ошибку, из-за которой создается впечатление, что она исходит из WebActivator. Сначала проверьте, заверните вещи в try..catch, если это необходимо. Также возможно, что есть ошибка в самом вебактиваторе.
Итак, поскольку я наткнулся на этот пост при исследовании проблемы, надеюсь, эта информация будет полезна по крайней мере кому-то еще.
TL; DR: проекты веб-развертывания запускают методы ApplicationPreStart при компиляции. Убедитесь, что у вас есть блоки try..catch вокруг любого кода, выполняемого в предстартовый период, или вы можете иначе обработать ситуацию, когда код выполняется во время компиляции на ваших серверах сборки вне среды IIS / хостинга.