2009-12-13 25 views
9

Tôi đang sử dụng VSTS 2008 + C# + .Net 3.5 + IIS 7.0. Tôi đã tạo một trang web mới và đặt một tệp html vào thư mục. Và khi tôi sử dụng chức năng duyệt trong trình quản lý IIS để duyệt tệp html, tôi đã gặp lỗi sau, bất kỳ ý tưởng nào là sai?Lỗi truy cập trái phép vào các trang html trong IIS 7.0

BTW: Tôi rất bối rối về lỗi trái phép vì tôi chạy quy trình công nhân trong tài khoản quản trị viên. Từ thông báo lỗi, tôi nhầm lẫn tại sao phương thức đăng nhập là ẩn danh và không sử dụng tài khoản quản trị viên?

HTTP Error 401.3 - Unauthorized 
You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server. 

Module IIS Web Core 
Notification AuthenticateRequest 
Handler StaticFile 
Error Cde 0x80070005 
Requested URL http://localhost:80/a.html 
Physical Path C:\test\simplehosttest\a.html 
Logon Method Anonymous 
Logon User Anonymous 
+1

bạn đã bật duyệt qua thư mục chưa? – mglmnc

+0

bạn đã bật nội dung tĩnh/xử lý tệp tĩnh khi cài đặt iis chưa? – iwo

+0

Cảm ơn mglmnc, "bạn đã bật duyệt thư mục" chưa - làm thế nào để kiểm tra? Chưa bao giờ làm điều này trước đây. – George2

Trả lời

17

C: \ test \ simplehosttest \ a.html

hãy cấp IUSR chiếm quyền cần thiết trong hồ sơ này hay thư mục của nó. Sau đó, lỗi 401.3 sẽ biến mất.

+0

Tôi đã đặt tài khoản cho quy trình công nhân là quản trị viên, tại sao vẫn có vấn đề về quyền? Quản trị viên phải mạnh hơn IUSR? – George2

+0

Tôi đã cố gắng thêm IUSR và nó hoạt động, tuyệt vời! Tại sao sử dụng IUSR có thể giải quyết được vấn đề của tôi? Người dùng đặc biệt này được sử dụng cho? – George2

+3

IUSR được sử dụng làm tài khoản người dùng ẩn danh mặc định. Điều đó có nghĩa là khi trang web của bạn có thể truy cập ẩn danh, trên thực tế IIS sử dụng tài khoản IUSR làm tài khoản đăng nhập cho tất cả người dùng. Sau đó, bạn phải cấp quyền IUSR cần thiết trên các thư mục để nó có thể truy cập chúng. –

1

Về cơ bản, bạn phải cấp quyền truy cập đọc vào tệp cho danh tính chạy ứng dụng của bạn trong IIS. Trên máy chủ 2008 và Vista danh tính (trừ khi bạn đã thay đổi rõ ràng) sẽ là "NT Authority \ Network Service" và trên windows7 đó là "IisAppPool \ AppPoolIdentity" (và không hỏi tại sao họ đã làm điều đó trên win7, đó là một WTF nếu bạn hỏi tôi)

+0

Tôi nhầm lẫn, có một tên người dùng được gọi là "AppPoolIdentity"? – George2

+0

Tôi đã cố gắng thêm quyền trang html cho người dùng "IUSR" và nó hoạt động. Tại sao sử dụng IUSR có thể giải quyết được vấn đề của tôi? Người dùng đặc biệt này được sử dụng cho? – George2

+0

Cảm ơn, "WTF" có nghĩa là gì? – George2

0

Tôi đã gặp phải vấn đề tương tự, nhưng cả hai bản sửa lỗi được đề xuất đều không giải quyết được sự cố của tôi. Tôi đã cố gắng triển khai một ứng dụng web ASP.Net 4.0 với Forms Authentication trên IIS7 trên Windows Server 2008. Giải quyết vấn đề là cung cấp quyền đọc và kịch bản cho các trình xử lý, có thể thực hiện bằng cách mở Handler Mappings và sau đó chọn "Edit Feature Quyền "từ menu bên phải.

0

Tôi đã tìm thấy nguyên nhân khác của vấn đề này ở trang web mà tôi đang triển khai đã được gửi tới tôi trong tệp zip. Đối với một số lý do (có thể vì các tệp được xây dựng trên máy Mac) các tệp đến với bộ bit được mã hóa cho bảo mật. Các tệp này hiển thị dưới dạng màu lục trong Windows Explorer.

13

Trong IIS 8.5 (cài đặt mới), tôi đã chạy hồ bơi ứng dụng của mình dưới dạng danh tính tùy chỉnh và các tệp được lưu trữ trong thư mục bên ngoài/inetpub/wwwroot. Danh tính có tất cả các đặc quyền tệp thích hợp, nhưng tôi vẫn gặp lỗi acl.

Sau một số cuộc đấu tranh, tôi phát hiện ra rằng trong quản lý IIS-> Trang web của tôi-> Xác thực-> Xác thực ẩn danh-> Chỉnh sửa danh tính được sử dụng để xác thực ẩn danh được đặt thành người dùng cụ thể theo mặc định (IUSR). Thiết lập nó để sử dụng bản sắc hồ bơi ứng dụng cố định nó cho tôi!

+1

Điều này ngay lập tức sửa chữa nó cho tôi cũng có, bất cứ ai có thể bình luận là tại sao điều này là mặc định để IUSR thay vì 'Application pool identity'? –

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