Rõ ràng là tôi đang thiếu thứ gì đó, tôi không thể triển khai một ứng dụng ASP.NET MVC 4, .NET 4.5 đơn giản trên Windows Small Business Server 2008 trên IIS 7.ASP.NET 4.5 MVC 4 không hoạt động trên Windows Server 2008 IIS 7
Khuôn khổ .NET 4.5 được cài đặt.
Tôi có nên xem phiên bản đó (4.5) trên cài đặt cơ bản của Ứng dụng Pool không? Tại thời điểm này, tôi chỉ có 2.0 và 4.0, vì 4.5 giống như 3.5 mà chỉ thêm trên đầu khung 4.0, tôi đoán điều này là bình thường.
Khi tôi duyệt trang chủ, tôi gặp lỗi sau:
403 - Bị cấm: Truy cập bị từ chối. Bạn không có quyền xem thư mục hoặc trang này bằng thông tin đăng nhập mà bạn đã cung cấp.
Khi tôi yêu cầu bộ điều khiển duy nhất có tên Trang/trang/chỉ mục, tôi nhận được trang 404 không tìm thấy. Giống như quá trình ASP.NET không bao giờ nhận được yêu cầu http.
Tôi có thể yêu cầu trang HTML đơn giản.
Hồ bơi ứng dụng được đặt thành .NET 4.0 và Tích hợp làm chế độ đường ống Được quản lý.
DỊCH VỤ MẠNG có quyền truy cập đọc/ghi vào thư mục.
Ứng dụng hoạt động hoàn hảo từ VS2012 tất nhiên.
Tôi không biết gì về những gì không đúng ở đây và các truy vấn công cụ tìm kiếm không giúp ích gì nhiều.
Có ai có gợi ý không, điều đó sẽ vô cùng được đánh giá cao. Cảm ơn
Sửa
Các dlls là đã vào thư mục bin như System.Web.Mvc, System.Web.Razor, vv
Tôi tạo ra một trang test.aspx trống để đảm bảo quá trình công nhân asp.net đã nhận được yêu cầu, và có trang là OK. Vì vậy, nó xuất hiện rằng định tuyến MVC là không làm việc, mặc dù tôi có ASP.NET MVC 3 ứng dụng web làm việc tốt trên máy chủ đó.
Sau khi cài đặt .NET 4.5 tôi đã làm một aspnet_regiis -iru trong trường hợp, thêm một thư mục aspnet_client trên ứng dụng, nhưng điều này vẫn không khắc phục được sự cố.
Xác thực ẩn danh được bật trên phần Xác thực IIS và Hiển thị ủy quyền cho phép tất cả người dùng.
ASP.NET MVC 4 được cài đặt, tôi vừa sửa chữa để đảm bảo.
Mặc dù ASP.NET MVC 4 được cài đặt, lỗi 404 do yêu cầu hành động/trang/chỉ mục được trả về bởi IIS chuẩn và không phải lỗi aspnet chuẩn. Vì vậy, thực sự nó xuất hiện như khung MVC 4 không được cài đặt đúng cách, bởi tôi chỉ cần kiểm tra lại và thực hiện sửa chữa. Tôi có thể tiếp tục điều tra ở đâu?
@Mystere Man, tôi đã thay đổi Xác thực ẩn danh để sử dụng nhận dạng Hồ bơi ứng dụng, dừng, khởi động ứng dụng và vẫn gặp lỗi tương tự. Nó thực sự trông giống như nếu ASP.NET MVC 4 không nhận yêu cầu.
Đây là một phần của web.config:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
Sửa 2012/09/27
Tôi đã sửa chữa Microsoft .NET Framework 4.5 và sửa chữa các ASP.NET MVC 4 , triển khai lại ứng dụng ASP.NET MVC 4 đơn giản và tôi vẫn nhận được hành vi tương tự. Tôi không chắc phải làm gì tiếp theo, vì vậy tôi bắt đầu một tiền thưởng với hy vọng rằng ai đó có thể giúp tôi tìm ra vấn đề.
Sửa 2014/01/31
Khi tôi hỏi câu hỏi đó, tôi gắn cờ các runAllManagedModulesForAllRequests là câu trả lời chấp nhận bởi vì nó đã giải quyết vấn đề. Nhưng tôi chắc chắn sẽ không sử dụng nó trong sản xuất. Tôi hỏi tại sao tôi phải làm điều này và không có bất kỳ câu trả lời nào.
Hơn Martin Hollingsworth câu trả lời thực sự là những gì tôi đang tìm kiếm, một cách tốt để khắc phục sự cố này mà không có tất cả các vấn đề về hiệu suất liên quan đến runAllManagedModulesForAllRequests.
Chúng tôi gần như đã từ bỏ và mua một máy chủ Windows 2012 mới (từ đó ứng dụng ASP.NET MVC hoạt động như cũ). Sau khi thử nghiệm giải pháp của Martin, máy chủ Windows 2008 đã hoạt động.
Bạn có thể xác nhận lại rằng App Pool đang chạy trong tài khoản MẠNG DỊCH VỤ KHÔNG? –
Có hồ bơi ứng dụng sử dụng tài khoản NetworkService (từ danh sách thả xuống được tích hợp sẵn) –
Bạn đã bật Xác thực Chưa xác định (hoặc bất kỳ Xác thực nào bạn đang định sử dụng)? –