Trong trường hợp của tôi, tôi đã nhìn thấy thông báo [AspNetCompiler] error ASPRUNTIME error message: Value cannot be null.
trong TeamCity.
Trong xây dựng đầy đủ các bản ghi, thông điệp hữu ích hơn ở phía dưới là:
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.
Khi nó quay ra tôi đã có một ngoại lệ được ném bởi một phương pháp tôi đã định nghĩa sử dụng 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
}
}
}
Nguyên nhân trong trường hợp của tôi là phương pháp prestart của tôi đang tải cài đặt từ sổ đăng ký và chúng không tồn tại trên máy chủ xây dựng (nhưng đã làm trên máy của tôi, vì vậy nó hoạt động khi tôi xây dựng nó). Tôi không biết tại sao các dự án webdeployment chạy mã này.
Tôi đã bọc toàn bộ nội dung trong một lần thử ..bắt được nhật ký một thông báo gây tử vong (trong ứng dụng của tôi, chuyển đến cả tệp nhật ký và nhật ký sự kiện cửa sổ). Trong xây dựng, tôi không thực sự quan tâm nếu nó không thành công vì nó không cần phải làm bất cứ điều gì. Trong cài đặt thực tế, nếu cài đặt bị thiếu, ứng dụng sẽ không hoạt động (và vì vậy nhật ký sẽ giải thích lý do).
Bây giờ, đối với OP, sự cố có vẻ như trong trình kích hoạt web. Tôi sẽ không ngạc nhiên nếu có một phương pháp sử dụng webactivor trong thư mục App_Start mà là ném lỗi, mà làm cho nó trông giống như nó đến từ WebActivator. Kiểm tra có đầu tiên, bọc những thứ trong try..catch nếu cần thiết. Nó cũng có thể có một lỗi trong webactivator chính nó.
Vì vậy, vì tôi đã xem qua bài đăng này trong khi nghiên cứu vấn đề, hy vọng thông tin này hữu ích cho ít nhất một người khác.
TL; DR: Dự án triển khai web chạy các phương thức ApplicationPreStart khi chúng biên dịch. Đảm bảo rằng bạn đã thử các khối lệnh xung quanh bất kỳ mã nào chạy ở thời gian prestart hoặc có thể xử lý tình huống nơi mã được thực hiện trong thời gian biên dịch trên (các) máy chủ xây dựng của bạn, bên ngoài môi trường IIS/lưu trữ.
Có bất kỳ câu trả lời nào phù hợp với bạn không? –