2012-10-04 19 views
6

Tôi nhận được lỗi:Web.Config - Không thể đọc tập tin cấu hình do không đủ quyền

Module IIS Web Core 
Notification Unknown 
Handler Not yet determined 
Error Code 0x80070005 
Config Error Cannot read configuration file due to insufficient permissions 
Config File \\?\C:\inetpub\wwwroot\web.config 

Các tập tin bản thân có quyền truy cập đầy đủ cho IUSR. IIS đang chạy pool ứng dụng của nó dưới ApplicationPoolIdentity. Tôi đã theo dõi tệp trên tệp và tôi thấy điều này:

9:04:43.8035456 AM w3wp.exe 8104 CreateFile C:\inetpub\wwwroot\Web.config ACCESS DENIED Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, AllocationSize: n/a 

Không biết tại sao tôi gặp lỗi này ... Bất kỳ ý tưởng nào?

Trả lời

8

thử cho đọc/ghi truy cập vào các tài khoản này vào thư mục gốc của ứng dụng Web của bạn và tất cả các file/tàu ngầm trong vòng:

MẠNG, MẠNG DỊCH VỤ, và tất nhiên IIS_IUSRS

+0

Tôi nghĩ rằng bạn có nghĩa là IUSR (thay vì IIS_IUSRS) – Shoham

+0

Phụ thuộc vào cửa sổ của bạn/iis cài đặt. IIS7 + là IIS_IUSRS (nếu tôi nhớ chính xác). IUSR là một điều IIS6 (một lần nữa nếu tôi nhớ chính xác). –

0

Trước tiên, hãy chắc chắn IUSR đã đọc cho phép trên các tập tin cấu hình (mà tôi tin rằng bạn đã làm điều đó)

Sau đó, thay đổi phương thức xác thực IIS để BasicAuthentication

Nếu vẫn không hoạt động, có lẽ là .config phần mở rộng không được cài đặt đúng trong IIS.

Hãy thử tất cả 3! Chúc may mắn!

EDIT: Quên hỏi bạn, loại ứng dụng nào?

+0

Dịch vụ web .Net của nó (ASP.Net 4.0) IIS đã bật BasicAuth và AnonymousAuth và tệp đã đọc được perm cho IUSR. Tôi sẽ kiểm tra cấu hình IIS cho phần mở rộng .config ngay bây giờ. – Sugitime

+0

Tôi đã làm một aspnet_regiis sau đó iisreset. Vẫn nhận được cùng một lỗi. – Sugitime

+0

Bạn cũng có thể thử cấp quyền cho toàn bộ thư mục ứng dụng của mình không? – HOKBONG

0

Tôi vừa bắt gặp này và không thể tìm thấy tính ứng dụng như một tài khoản để thêm nó vào bảo mật thư mục. Tôi đã thay đổi bản sắc của hồ bơi ứng dụng từ tính ứng dụng chung sang Dịch vụ cục bộ và trang web chạy tốt.

+0

Là một fyi, điều này có ý nghĩa bảo mật. Nếu có một lỗ hổng trong ứng dụng của bạn và máy chủ bị xâm nhập, tài khoản LocalSystem về cơ bản có đặc quyền quản trị viên. Hãy xem xét hiệu trưởng của Privilege ít nhất và tạo ra một người dùng hạn chế mới. https://en.m.wikipedia.org/wiki/Principle_of_least_privilege – Sugitime

0

Tôi đã sao chép trang web WordPress trực tiếp vào máy cục bộ của mình để chỉnh sửa/cập nhật khi lỗi IIS này xảy ra. Thay đổi quyền không làm gì cả.

Trong trường hợp của tôi, chỉ cần xóa web.config đã thực hiện thủ thuật.

0

Tôi thấy rằng việc thêm mymachine/USERS với đầy đủ quyền vào C: \ inetpub \ wwwroot đã khắc phục được sự cố.

Vấn đề là do tôi đã chia sẻ một số nội dung trang web bên trong C: \ inetpub \ wwwroot với các nhà phát triển khác. Điều này phải có quyền thay đổi và đã phá vỡ IIS của tôi hoàn toàn.

+0

Tôi thiết lập chia sẻ cho thư mục wwwroot của mình và bắt đầu gặp phải lỗi này. Giải pháp này cũng làm việc cho tôi. – madmike

0

Tôi đã gặp sự cố này một lần nữa vào hôm nay. Lần này, không có quyền cấp phép làm việc (đã thử tất cả các tài khoản thông thường, mọi người, chỉ đọc, sửa đổi, toàn quyền kiểm soát).

Quá trình đóng, khởi động lại IIS, khởi động lại đầy đủ. Ko có kết quả.

Cuối cùng, thay đổi chủ sở hữu từ "Quản trị viên" thành chính tôi và mọi thứ đã được đưa vào vị trí.

Tôi thường chạy Visual Studio ở cấp Admin (sử dụng tài khoản của riêng tôi) vì tôi thích sử dụng IIS cục bộ để lưu trữ/gỡ lỗi các trang ASP.NET. Có lẽ điều đó đã khiến các tệp mới được sở hữu bởi \ Administrators, do đó có thể có quyền truy cập hạn chế vào các tệp đó bởi các quá trình IIS hoặc App Pool.

Bản sắc mặc định của AppleAppPool được đặt để tải hồ sơ người dùng. Tôi không biết tại thời điểm nào người quản lý phiên áp dụng UAC/quyền giảm xuống và liệu hồ sơ người dùng có ảnh hưởng đến điều này hay không. Thức ăn cho sự suy nghĩ ...

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