Tôi đang phát triển trang web ASP.NET MVC trên máy Windows Server 2008/IIS7 cục bộ và tôi hiện đang cố gắng triển khai nó đến nhà cung cấp máy chủ web của tôi, ASPnix. Tôi đang sử dụng dịch vụ Web Hosting chia sẻ của họ và đã được đặt trên một máy chủ IIS7 mà họ yêu cầu hỗ trợ ASP.NET MVC.Lỗi máy chủ nội bộ do khóa cấu hình khi triển khai ứng dụng ASP.NET MVC của tôi cho máy chủ web của tôi
Tuy nhiên, khi tôi triển khai ứng dụng lên đến máy chủ của mình, tôi nhận được "Lỗi máy chủ nội bộ".
Đây là Lỗi Tóm tắt:
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
Sau đây là các phần có liên quan của Chi tiết Lỗi Thông tin:
Module: IIS Web Core
Notification: BeginRequest
Handler: Not yet determined
Error Code: 0x80070021
Config Error: This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
Và Config Nguồn trông như thế này:
144: </modules>
145: <handlers>
146: <remove name="WebServiceHandlerFactory-Integrated"/>
Lỗi xuất phát từ thực tế là tôi có phần .webServer trong tệp web.config của tôi có phần xử lý con. Phần system.webServer là phần cấu hình chính xác được đặt xuống theo mặc định khi lần đầu tiên tôi tạo trang ASP.NET MVC trong Visual Studio. Nó có những nhận xét XML sau trên nó:
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
Tôi lấy xử lý phần con ra, và lỗi 500 sẽ biến mất. Tất nhiên, phần đó là cần thiết cho một ứng dụng ASP.NET MVC để hoạt động đúng trong IIS7, vì vậy chỉ cần lấy nó chỉ tạo ra các lỗi khác (lỗi 404 trong trường hợp này vì định tuyến không hoạt động).
Các kỹ sư hỗ trợ tại ASPnix cho rằng ASP.NET MVC được cài đặt và cấu hình đúng trong IIS7 trên máy chủ của họ. Tôi không nói rằng tôi không tin họ vì đây là trang ASP.NET MVC đầu tiên mà tôi đã xây dựng và triển khai. Tuy nhiên, tôi không thể nghĩ bất cứ điều gì tôi có thể làm để làm cho công việc này vì nó dường như là một vấn đề cấu hình ở một mức độ mà tôi không có quyền truy cập vào.
Sự cố này có vẻ như là vấn đề thường gặp với những người cố gắng triển khai ASP.NET MVC cho nhà cung cấp dịch vụ lưu trữ. Có bất cứ điều gì chạy vào điều này hoặc với ASPnix hoặc các công ty lưu trữ web khác và hy vọng tìm thấy một giải pháp?
ps
Một điều kỳ lạ. Khi nghiên cứu vấn đề này trên web, tôi thấy nhiều người nói rằng họ phải thiết lập thuộc tính overrideModeDefault các tệp applicationHost.config của IIS7 thành từ "Từ chối" thành "Cho phép". Tuy nhiên, máy chủ phát triển cục bộ của tôi đã được đặt thành "Từ chối" và mọi thứ đều hoạt động tốt. Mặc dù vậy, tôi không có quyền truy cập vào file applicationHost.config anyway trên máy chủ của máy chủ web.
FYI - Tôi chỉ cố gắng tải lên các trang web ASP.NET MVC mà bạn nhận được khi bạn tạo một dự án MVC sạch trong Visual Studio và tôi nhận được lỗi tương tự, vì vậy nó không có gì để làm với cấu hình trang web của tôi. – twistedstream