2011-02-05 33 views
6

Tôi đã tham gia một nhóm phát triển một ứng dụng ASP.NET MVC phiên bản 1. Tôi chạy ứng dụng này trên máy cục bộ của tôi bằng IIS phiên bản 7.5. Hệ điều hành của tôi là Windows Server 2008 R2 Enterprise Edition. Tôi sử dụng Visual Studio 2008 SP1 để phát triển.Vấn đề định tuyến với tên bộ điều khiển cụ thể sử dụng ASP.NET MVC 1 trong IIS 7

Một trong các bộ điều khiển trong ứng dụng này được gọi là ReportsController. Các mục trong bảng định tuyến cho bộ điều khiển này sử dụng 'Báo cáo' làm phần tên bộ điều khiển. Vấn đề tôi có là, bằng cách sử dụng IIS 7.5 trên máy địa phương của tôi, tôi chỉ đơn giản là không thể truy cập bất kỳ phương pháp hành động báo cáo. Nếu tôi cố gắng truy cập, nói, '/ Reports/Index' từ Chrome hoặc Firefox, tôi nhận được phản hồi 401 Unauthorized (như được thấy bằng Fiddler) và trình duyệt hiển thị hộp thoại nhập tên người dùng/mật khẩu của nó.

Xin lưu ý những điều sau:

  • Tất cả các trang không báo cáo khác trong công tác ứng dụng một cách chính xác.
  • Nếu tôi thêm điểm ngắt vào Application_BeginRequest, nó sẽ không được nhấn khi yêu cầu trang Báo cáo.
  • Nếu tôi thay đổi mục nhập Định tuyến báo cáo trong mã đăng ký bảng lộ trình để tôi phải truy cập các đường dẫn như '/ Reportss/Index' (lưu ý ')' thì các trang Báo cáo này hoạt động chính xác.
  • Tôi đã thử xóa rồi tạo lại ứng dụng Web của mình trong IIS.
  • Các trang Báo cáo hoạt động tốt nếu tôi chạy ứng dụng bằng máy chủ phát triển Visual Studio 2008 (Cassini).
  • Không có thư mục nào được gọi là Báo cáo trong thư mục ứng dụng.
  • Các trang Báo cáo hoạt động chính xác trên môi trường UAT của chúng tôi, cũng theo IIS 7.5.
  • Tôi đã xem lại cài đặt IIS của mình nhiều lần, bao gồm so sánh chúng với các thiết lập trên UAT và tôi không thể thấy được sự cố.

Trong khi tôi có thể sử dụng Cassini để truy cập vào trang Báo cáo, tôi thực sự muốn hiểu điều gì gây ra sự cố này.

+0

Bạn đã so sánh tệp web.config chưa? Những thứ đơn giản như mô-đun http bị thiếu hoặc theo thứ tự sai có thể gây ra những thứ như thế này. Có thể có một web.config trong thư mục views của bạn, nó có thể là giá trị kiểm tra rằng dựa trên một bài báo tôi thấy nó có thể là do đường dẫn bảo mật. http://haacked.com/archive/2008/06/25/aspnetmvc-block-view-access.aspx – Hawxby

+0

tìm kiếm tất cả các tệp giải pháp của bạn cho một từ "báo cáo" ..có lẽ bạn có thể tìm thấy một số mã mà làm một cái gì đó đặc biệt cho các tuyến đường này hoặc điều khiển này (có thể ủy quyền thuộc tính một nơi nào đó, có thể trên một số điều khiển cơ sở hoặc một cái gì đó tương tự). Các cài đặt xác thực cũng được thiết lập trong web.config như Hawxby đã đề xuất. – mare

+0

Tuy nhiên, vì có vẻ như nó chỉ liên quan đến một Windows Server cụ thể và IIS của nó, nó có thể là một cái gì đó trong cấu hình IIS. Có thể bạn có một trang web hoặc thư mục ảo khác hoạt động tại/Báo cáo và có thể có cài đặt xác thực/ủy quyền đặc biệt được thiết lập. Một điều mà tôi có thể nghĩ đến là Dịch vụ Báo cáo MS SQL Server .. – mare

Trả lời

11

Nếu bạn đã cài đặt Dịch vụ báo cáo trên máy của mình. cố gắng tạo một trang web mới và sử dụng nó. Nếu bạn đã cài đặt SSRS trên máy của mình, nó sử dụng/báo cáo để lưu trữ báo cáo.

+3

Rất cám ơn @Cengiz, và @mare and @Sean - Dịch vụ báo cáo là vấn đề. Tôi đã sửa lỗi này bằng cách truy cập Trình quản lý cấu hình dịch vụ báo cáo và thay đổi tên tiêu đề máy chủ trên URL Trình quản lý báo cáo (đó là đường dẫn đến thư mục Báo cáo phiền hà). – stevejay

+0

+100 - đây là một trợ giúp lớn. Tôi đã làm theo quy trình ở đây và thay đổi cổng thành 801 - http://bretstateham.com/fixing-sql-server-reporting-services-ssrs-2008-url-reservations-on-windows-7/ –

1

Tôi đã gặp sự cố khi sử dụng tên thư mục 'Báo cáo' ở gốc của trang web .net 2.0 trên IIS 7.5. Nó tạo ra một lỗi 503, chỉ ra rằng có một lỗi ở mức hệ thống trước khi IIS cố gắng để phục vụ trang. Tôi không chắc chắn nếu các dịch vụ báo cáo được cài đặt trên máy chủ của tôi. Tôi chỉ thay đổi tên thư mục, tất cả các liên kết và mọi thứ đã hoạt động.

0

Tôi có cùng một vấn đề chính xác trong Ứng dụng MVC với các dịch vụ báo cáo được cài đặt trên cùng một máy chủ nơi mã được triển khai. Tôi đã thay đổi URL Trình quản lý báo cáo trong "Cấu hình dịch vụ báo cáo máy chủ SQL" là hostName/Reports và được gán một tên mới tức là SSRSReports để thư mục ảo hiện là tên máy chủ/SSRSReports.

Bây giờ ứng dụng của tôi cũng như Báo cáo SSRS đang hoạt động như mong đợi.

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