2009-11-30 21 views
7

Chúng tôi đang liên tục nhìn thấy những ngoại lệ sau một thời gian ngắn sau khi một thùng App bơi trong một ứng dụng ASP.NET:liên tục PolicyException: phép Thực hiện không có thể được mua

System.Configuration.ConfigurationErrorsException: Could not load file or assembly 'Microsoft.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418) ---> System.IO.FileLoadException: Could not load file or assembly 'Microsoft.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418) 
File name: 'Microsoft.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ---> System.Security.Policy.PolicyException: Execution permission cannot be acquired. 
    at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) 
    at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) 
    at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 
    at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 
    at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 
    at System.Reflection.Assembly.Load(String assemblyString) 
    at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) 

Các DLL cụ thể mà không tải dao động từ sự cố sự cố , nhưng luôn luôn được tham chiếu bởi hội đồng chính.

Chúng tôi đang chạy trên ASP.NET 3.5 trên Windows Server 2008. Điều này dường như xảy ra theo lô ảnh hưởng đến một số nhưng không phải tất cả các trang web trên cùng một App Pool. Chúng tôi có một số lượng lớn các trang web đều chạy cùng một mã.

Khi trang web không tải được tệp DLL, nó sẽ ném màn hình màu vàng chết cho đến khi tái sử dụng App Pool tiếp theo. Chúng tôi không thể tái tạo hành vi này và các trang web dường như hoạt động tốt trong nhiều ngày hoặc vài tuần tại một thời điểm (và nhiều lần tái sử dụng App Pool) trước khi không thành công.

Có ai khác nhìn thấy hành vi tương tự không?

Cập nhật:

Chúng tôi đã cố gắng tái tạo sự thất bại bằng cách thiết lập một vài trăm trang web và viết một kịch bản để đánh họ nhiều lần trong khi tái chế App Hồ bơi một lần mỗi vài phút và không thể thực hiện được nhiều ngoài việc tải xuống CPU của máy chủ trong vài ngày liền.

Sau đó, chúng tôi đã cố gắng gây rối (khóa một trong các tệp DLL, thay đổi quyền của tệp) bằng các bản sao của các tệp DLL mà ASP.NET tạo và quản lý để tái tạo hành vi tương tự nhưng không ngoại lệ tương tự.

Có ai có bất kỳ ý tưởng nào về cách điều chỉnh chính sách bảo mật để làm cho nó ném một số System.Security.Policy.PolicyException: Execution permission cannot be acquired. khi tải một DLL cụ thể không?

+0

bất kỳ phần mềm chống vi rút nào được cài đặt trên máy chủ có thể cản trở? –

Trả lời

Các vấn đề liên quan