2012-03-16 36 views
27

Khi tôi chuyển đổi dự án ASP.NET MVC của tôi từ máy chủ web Cassini để IIS Express, điều này được thêm vào tập tin applicationhost.config tôi:IIS Express tự động tắt xác thực ẩn danh cho dự án của tôi, tại sao?

<location path="MyProject"> 
    <system.webServer> 
     <security> 
      <authentication> 
       <anonymousAuthentication enabled="false" /> 
       <windowsAuthentication enabled="false" /> 
      </authentication> 
     </security> 
    </system.webServer> 
</location> 

Nó gây ra các trang web không tải với 401,2 - Unauthorized và tôi không thể sửa chữa nó trên cấp độ Web.config - sau đó nó sẽ phàn nàn rằng phần bị khóa ở cấp độ cha mẹ (HTTP 500.19).

Tôi có thể khắc phục bằng cách sửa đổi tệp applicationhost.config nhưng tôi không hiểu tại sao tôi nên cần khi không có phần nào được thêm vào cho dự án MVilla ASP.NET MVC. Điều gì có thể sai?

Tôi đang sử dụng phiên bản beta 11 nhưng cũng đã xác nhận hành vi lạ này trong 2010 SP1. IIS Express cho biết đó là phiên bản 7.5.

Trả lời

58

Đó là vì đối với một số lý do, đây là trong tập tin csproj tôi:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication> 

Đặt nó đến enabled sửa chữa các vấn đề (nó cũng có thể được thực hiện từ Visual Studio, chọn dự án, F4, thiết Anonymous Xác thực trong lưới thuộc tính để Bật).

+0

Borek, tôi đã có chính xác cùng một vấn đề. Tôi nghĩ rằng đây là một cái gì đó để làm với VS 11? (trong đó nó đã viết những cài đặt đó) –

+1

Cảm ơn bạn, tôi đã gặp vấn đề tương tự ở đây VS 11 Beta. Thay đổi cài đặt ở trên đã khắc phục sự cố cho tôi. Cảm ơn bạn! –

+0

AWESOME @Borek ... Tôi đã phát điên vì điều này! :) –

4

vui lòng nhấp chuột phải vào dự án và chọn sử dụng iis express trước khi nhấn F4.

+1

Thx rất nhiều. Tôi luôn luôn quên về các thuộc tính toolwindow đối với các tệp dự án. – paulroho

+0

Bạn được chào đón. –

0

Đôi khi trước đây, tôi gặp khó khăn tương tự, nhưng nó hơi khác so với những gì tôi thấy ở đây. Trong máy tính xách tay của tôi, tôi có cả VS 08 và VS 13, và SQL Server 2008 R2 và 11G XE. Đối với các trang web kết nối với R2 chưa bao giờ là vấn đề, nhưng khi tôi đang cố xây dựng trang web bằng cách sử dụng thành viên oracle với asp.net, tôi thấy rằng các trang mở nhưng các trang trong thư mục có vai trò không mở và cho tôi lỗi truy cập bị từ chối. Mặc dù thư mục có một web.config thích hợp bên trong và người dùng được tạo với cùng vai trò, nhưng nó vẫn đang ném lên cùng một lỗi. Cuối cùng tôi nhận ra rằng tôi cần cơ chế xác thực và vì vậy tôi đã thêm mã sau đây vào system.web của web.config:

<authentication mode="Forms"> 
<forms loginUrl="Login.aspx" protection="All" slidingExpiration="true" 
timeout="90" /> 
</authentication> 
<authorization> 
<deny users="?" /> 
</authorization> 
<identity impersonate="false"/> 
<trace 
enabled="false" 
requestLimit="10" 
pageOutput="false" 
traceMode="SortByTime" 
localOnly="true" 
/> 

Và nó đã hoạt động, giờ đây người dùng đã xác thực của tôi có thể đăng nhập vào các thư mục được chỉ định! Tôi hy vọng điều này có thể giúp một người nào đó đối mặt với các vấn đề tương tự như tôi.

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