2010-03-18 17 views
17

Thiết lập: Windows 7, IIS7. Tôi đang làm việc trên một ứng dụng đang được xem thông qua máy chủ IIS cục bộ, không phải là máy chủ web gỡ lỗi tích hợp. Vì vậy, url ứng dụng của tôi là http://localhost/foo/bar.aspx. Có không có<customErrors> phần trong web.config của tôi và tôi chưa thay đổi bất kỳ cài đặt nào trong IIS.lỗi 500.19 trong IIS7 khi lỗi xảy ra

Nếu bất kỳ lỗi xảy ra, tôi luôn nhận được màn hình báo lỗi sau:

Lỗi HTTP 500,19 - Internal Server Error
đường dẫn vật lý tuyệt đối "C:\inetpub\custerr" không được phép trong system.webServer/httpErrors phần trong web.config tập tin. Thay vào đó hãy sử dụng đường dẫn tương đối.

Dưới đây là nội dung applicationhost.config tôi:

<httpErrors errorMode="Custom" lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> 
    <error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" /> 
    <error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" /> 
    <error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="404.htm" /> 
    <error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" /> 
    <error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" /> 
    <error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" /> 
    <error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" /> 
    <error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" /> 
    <error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" /> 
</httpErrors> 

Làm thế nào tôi có thể thoát khỏi lỗi cấu hình này vì vậy tôi có thể thấy lỗi chi tiết?

Trả lời

28

Tôi đã giải quyết vấn đề này trong vài ngày qua và đã tìm ra giải pháp. Tệp Web.Config có thể chỉ định đường dẫn tuyệt đối cho một trong các trang lỗi. Đây có thể không phải là Web.Config của ứng dụng bạn đang thử nghiệm. Đối với tôi, đó là tệp Web.Config của trang web.

  1. Nếu bạn tìm thấy tệp Web.Config vi phạm, bạn có thể xóa đường dẫn tuyệt đối và sự cố phải được khắc phục.

  2. Một giải pháp dễ dàng hơn nhiều sẽ làm thay đổi tập tin ApplicationHost.Config của bạn để thiết lập allowAbsolutePathsWhenDelegated tài sản để true:

    <httpErrors allowAbsolutePathsWhenDelegated="true" errorMode="Custom" 
          lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> 
    
+1

không thể nâng cấp bạn đủ. tôi đã có một web.config trong trang web gốc của tôi. xóa mọi thứ từ đó. yayayayayayaya !!!!!!!! – Joel

+0

http://stackoverflow.com/questions/4358339/how-to-prevent-iis7-for-handling-http-status-code-401 – Jared314

+0

Tôi có iis7.5 và vs2013 và thuộc tính này không được phép trong tệp cấu hình , sau khi cố gắng đẩy điều này, lỗi vẫn xuất hiện. – DanielV

2

tôi đã cùng một vấn đề khi tôi cài đặt Certificate Services Active Directory trên domain controller . Cả hai người trong số họ đang sử dụng cổng 443. Tôi thay đổi một dịch vụ chứng chỉ cho địa chỉ IP của máy chủ và để máy chủ trao đổi chưa được gán. Điều đó đã giải quyết được vấn đề của tôi.

1

Tôi gặp vấn đề tương tự trong IIS 8.5. Sửa chữa là xóa bất kỳ mục nào trong tệp web.config (nằm trong thư mục gốc của trang web) tham chiếu đến các trang lỗi tùy chỉnh. Các mục được tạo bởi hệ thống khi tôi đã cố gắng thực hiện thay đổi cho các trang tùy chỉnh.

1

Điều gì đã giúp tôi giải quyết lỗi này là đặt allowAbsolutePathsWhenDelegated thành true.

Đến IIS> Configuration Editor> tại mục loại: system.webServer/httpErrors và Set allowAbsolutePathsWhenDelegated để đúng. Đặt lại IIS để có biện pháp tốt.