2009-12-04 32 views
30

tôi nhận được lỗi này khi tôi đang sử dụng FileHelpers.dll, nhưng IIS của tôi được thiết lập để mức độ đầy đủ niềm tin để nó không phải là cách màIIS7 Không cấp phép tối thiểu yêu cầu

Đó là vết đống đầy đủ:

[PolicyException: Required permissions cannot be acquired.] 
     System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) +10238142 
     System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +97 

    [FileLoadException: Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] 
     System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0 
     System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +416 
     System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +166 
     System.Reflection.Assembly.Load(String assemblyString) +35 
     System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +190 

    [ConfigurationErrorsException: Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] 
     System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11207304 
     System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +388 
     System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +232 
     System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +48 
     System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +210 
     System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +76 
     System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +283 
     System.Web.Compilation.BuildManager.CompileGlobalAsax() +50 
     System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +676 

    [HttpException (0x80004005): Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] 
     System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +76 
     System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +1012 
     System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +1025 

[HttpException (0x80004005): Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11301302 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +88 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4338644 

Trả lời

81

Tôi gặp sự cố tương tự khi tôi xây dựng lại máy tính của mình bằng cài đặt Windows 7 sạch. Sau khi săn lùng xung quanh, tôi khám phá ra một giải pháp hiệu quả với tôi.

Trong cài đặt nâng cao của hồ bơi ứng dụng IIS, trong "Process Model", đặt Load User Profile thành true.

Có một số thứ khác cần kiểm tra như mức độ tin cậy của bạn, nhưng không có thứ nào trong số chúng được áp dụng cho tôi (đó là tất cả sự tin tưởng hoàn toàn đã có trên máy tính của tôi). Đặt hồ bơi ứng dụng để tải hồ sơ người dùng đã sửa nó.

+0

Mô hình quy trình này ở đâu? – Omu

+2

Bắt đầu/Chạy inetmgr. Tìm trong Hồ bơi ứng dụng. Nhấp chuột phải vào hồ bơi ứng dụng của bạn. Chọn Cài đặt nâng cao. Có nó là –

2

Chúng tôi gặp sự cố tương tự với Windows 2008 R2 khi ứng dụng của chúng tôi hoạt động tốt ở chế độ 64 bit nhưng khi chuyển sang chế độ 32 bit sẽ ngừng hoạt động và ném lỗi quyền truy cập, trong IIS7 trong Cài đặt nâng cao >> Model >> cài đặt "Identity" đã được chuyển thành "Application Pool Identity" theo mặc định và có thể cần thay đổi thành "Network Service" để làm việc ở chế độ 32 bit.

Chúng tôi đã làm điều đó và bây giờ chúng tôi đang ồn ào dọc theo suốt. Tìm ra thông tin này có thể là lý do mà mọi người chỉ vào quyền truy cập thư mục, bởi vì về mặt kỹ thuật nó là một vấn đề cho phép thư mục. Nhưng sự thay đổi trong IIS và không phải là các thiết lập bảo mật trên các thư mục.

+0

cùng một điều làm việc cho tôi như được mô tả bởi Samuel ...... Chỉ cần thêm một điều này là thiết lập Advance ứng dụng hồ bơi .... – riz

20

Tôi đã thấy lỗi này trong một trường hợp khác, ví dụ, IIS đang chạy ứng dụng hoặc đường dẫn ảo qua đường dẫn UNC (ví dụ: \\svr\share\folder). Ngay cả khi Load User Profile=true Tôi vẫn gặp lỗi PolicyException. Nó đã được giải quyết bằng cách chạy Code Access Security Policy Tool (Caspol.exe) để thêm sự tin tưởng hoàn toàn vào đường dẫn UNC. Kể từ khi chúng tôi đã có cả 64 bit32 bit của .Net 2.x.Net 4.x, tôi chạy nó trong tất cả bốn môi trường như sau:

%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on 
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on 
%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on 
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on 

Một số lưu ý thận trọng:

  • Đối .Net 4.x hãy chắc chắn để cho phép các NetFx40_LegacySecurityPolicy để true hoặc các lệnh caspol.exe sẽ không hoạt động như mong đợi.
  • Làm không thêm mục nhập trùng lặp với caspol.exe cho một môi trường nhất định. Chạy các lệnh dưới đây để xem các mục của bạn:

    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\caspol.exe -a -lg %SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -a -lg %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\caspol.exe -a -lg %SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\caspol.exe -a -lg

+5

Cảm ơn bạn đã trả lời này! Kiến thức trường hợp đặc biệt này không dễ dàng thu được. – csmosx

2

Dường như đây là một cái gì đó của một hội chung sẽ không tải lỗi. Tôi đánh giá cao tất cả các bài đăng khác vì họ đã trở thành danh sách các nguồn có thể có lỗi.

Tôi đã tìm thấy một mục khác. Tôi đã thử tất cả những điều trên mà không thành công. Cuối cùng tôi đã nhận ra rằng tôi đã xuất bản Ứng dụng Web từ Visual Studio Express 2008 với một Cấu hình Xây dựng của 'Gỡ lỗi'. Sau khi thay đổi Cấu hình Xây dựng thành 'Phát hành', Ứng dụng Web đã hoạt động.

Chi tiết cụ thể: Visual Studios Express 2008 chuyển tệp sang IIS7.5 trên máy chủ Win 2008 R2.

-2

Trong nhóm cài đặt nâng cao ứng dụng IIS 6.0 của bạn, trong "Process Model", đặt Load User Profile thành true.

Có một số thứ khác cần kiểm tra như mức độ tin cậy của bạn, nhưng không có thứ nào trong số chúng được áp dụng cho tôi (đó là tất cả sự tin tưởng hoàn toàn đã có trên máy tính của tôi). Đặt hồ bơi ứng dụng để tải hồ sơ người dùng đã sửa nó.

giúp để giải quyết

quyền yêu cầu không có thể được mua trong IIS để giải quyết nó ..

1

Tôi đã có vấn đề tương tự, tôi giải quyết vấn đề này với các bước sau:

  1. Đến IIS .
  2. Nhấp chuột phải vào thư mục trang web và xem hồ bơi ứng dụng của nó.
  3. Nhấp chuột phải vào nhóm ứng dụng và chuyển đến cài đặt nâng cao.
  4. Trong phần mô hình quá trình thiết lập load user profile để true
1

vấn đề của mình là thuộc về sử dụng DDL không tin tưởng cho SharePoint để giải quyết vấn đề:

  1. mở IIS
  2. nhấp chuột trên các cấp .net đúng nhất
  3. chọn đầy đủ (nội bộ)
Các vấn đề liên quan