2011-05-14 4 views
5

Tôi đã có một ứng dụng chạy tốt tại địa phương, nhưng khi triển khai tôi nhìn thấy các lỗi:Làm thế nào để gỡ lỗi hội Load - ConfigurationErrorsException

Exception information: 
    Exception type: ConfigurationErrorsException 
    Exception message: Could not load file or assembly 'FluentMigrator.Runner' or one of its dependencies. An attempt was made to load a program with an incorrect format. 
    at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) 
    at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() 
    at System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() 
    at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) 
    at System.Web.Compilation.BuildManager.CallPreStartInitMethods() 
    at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) 

Tôi đã thử xem các ràng buộc lắp ráp đăng nhập thông qua các hội Trình xem nhật ký ràng buộc, nhưng ngay cả khi đã bật tôi không nhận được nhiều thông tin hơn so với dấu vết ngăn xếp ở trên, nhật ký dường như vẫn trống. Hội đồng mà nó phàn nàn về là hiện tại và trên mặt của nó có tất cả các hội đồng phụ thuộc của nó hiện diện. Tôi có thể làm gì khác để gỡ lỗi những gì sai trên máy chủ của tôi?

Trả lời

2

Lỗi này liên quan đến kiến ​​trúc không khớp, tức là các tệp nhị phân của bạn có thể chạy trong quy trình x86, nhưng IIS chạy chúng trong quy trình x64 (hoặc ngược lại). Đây là cấu hình trong cài đặt App Pool.

Để gỡ rối vấn đề này, bạn có thể thử như sau: 1) Enable logging fusion ( How to enable assembly bind failure logging (Fusion) in .NET

2) Sử dụng cửa sổ gỡ lỗi (WinDbg) với bộ nạp snaps. Vui lòng xem tại đây cách thiết lập. http://www.microsoft.com/msj/0999/hood/hood0999.aspx

Ngoài ra khi trong WinDbg bắt được quản lý ngoại lệ với sxeclr lệnh Khi bạn nhấn ConfigurationErrorsException, bạn nên chạy .loadby sos clr lệnh, sau đó pe - điều này sẽ hiển thị thêm chi tiết về ngoại lệ. Đồng thời, loader snaps sẽ hiển thị dll nào đang gặp sự cố tải. Bạn sẽ cần chạy quy trình công nhân IIS của bạn (w3wp.exe) trong WinDBG. Bạn nên sử dụng gflags để cấu hình. Thông thường 2) sẽ giúp với các hội đồng C++/CLI.