2011-11-21 26 views
11

Báo cáo được triển khai và hoạt động, được xác minh trong Trình quản lý Báo cáo.Báo cáo Kiểm soát Web Viewer Phiên bản 10 Cung cấp Lỗi Mặc dù Thiết lập Chính xác

Ứng dụng của tôi là ứng dụng MVC2 với báo cáo của tôi trên trang aspx của riêng mình. Trang này hoạt động với phiên bản 8 của kiểm soát trình xem báo cáo, nhưng chúng tôi đã chuyển sang máy chủ mới, nâng cấp máy chủ sql và đang cố gắng cập nhật trang web của chúng tôi để phù hợp.

Máy chủ là Windows Server 2008 với IIS 7.5.

Tôi đang thử nghiệm ở cả chrome và IE 9.

Mặc dù nỗ lực hết sức mình, tôi vẫn nhận được lỗi này:

Report Viewer Configuration Error

The Report Viewer Web Control HTTP Handler has not been registered in the application's web.config file. Add <add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> to the system.web/httpHandlers section of the web.config file, or add <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> to the system.webServer/handlers section for Internet Information Services 7 or later.

Nhưng, tôi đã làm điều này. trên thực tế, tôi thậm chí đọc từ MSDN:

To use IIS 7.0 in Integrated mode, you must remove the HTTP handler in system.web/httpHandlers. Otherwise, IIS will not run the application, but will display an error message instead.

Chỉ cần để được an toàn, tôi đã cố gắng một combo của không khi thêm handler vào IIS trực tiếp, chỉ cần máy chủ web http xử lý trong cấu hình của tôi, chỉ cần xử lý http trong cấu hình của tôi và cả hai.

Hãy bắt đầu với web.config của tôi

<configuration 
    <system.web> 
    <httpRuntime maxQueryStringLength="4096" /> 
    <compilation targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
     <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
     </assemblies> 
     <buildProviders> 
      <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     </buildProviders> 
    </compilation> 
    </system.web> 
    <system.webServer> 
    <handlers> 
     <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </handlers> 
    </system.webServer> 
</configuration> 

tôi có các hội đồng, các nhà cung cấp xây dựng và xử lý. Điều gì khác có thể sai?

Trả lời

6

Tôi tìm thấy một workaround nhanh chóng và dơ bẩn - để cấu hình web của bạn thêm này:

<location path="Reserved.ReportViewerWebControl.axd"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 

tôi thấy trong cáy mà vì một lý do khi trang được yêu cầu Reserved.ReportViewerWebControl.axd thay vì nhận được HTTP 200 máy chủ phản hồi sẽ gửi 302 - được chuyển đến login.aspx? Returnurl = "Reserved.ReportViewerWebControl.axd. Vì vậy, cho phép tất cả người dùng đến đường dẫn xử lý giải quyết được vấn đề.

+0

Tôi là josh sẽ xác nhận tác phẩm này :) cảm ơn –

+0

trong trường hợp này bạn có thể vui lòng đánh dấu câu trả lời là được chấp nhận không? – lstanczyk

+0

đã bỏ lỡ một từ khóa ở đó ... Tôi hy vọng josh sẽ xác nhận tác phẩm này! :) –

1

Tôi nghĩ rằng ReportViewer của nó hiển thị vấn đề trên IIS7 Tôi đã ánh xạ thủ công trình xử lý reportviewer của mình cho IIS7 như sau:

• Trình quản lý Dịch vụ Thông tin Internet Mở (IIS) và chọn ứng dụng Web của bạn.

• Trong khu vực IIS, bấm đúp vào biểu tượng Ánh xạ tay.

• Ở ngăn Hành động ở bên phải, hãy nhấp vào Thêm trình quản lý được quản lý.

• Tại Add Managed thoại Handler, nhập dữ liệu sau: đường dẫn

Yêu cầu: Reserved.ReportViewerWebControl.axd

Loại: Microsoft.Reporting.WebForms.HttpHandler

Tên: Dành-ReportViewerWebControl -axd

• Nhấp vào OK.

cũng thay đổi bằng cách cấu hình web bằng cách thêm


Tuy nhiên tôi không hoạt động. Tôi nghĩ giải pháp trên sẽ giúp người khác.

+0

Đúng, điều này đã sửa nó cho tôi (IIS7, Server 2008) – odinel

-1

Tôi đã thử điều này bằng cách xóa các hội đồng mvc không mong muốn khỏi dự án asp.net. Vì vậy, giải pháp đơn giản là xóa WebMatrix. * .ll từ thư mục Bin trong dự án web vì thuộc về khung mvc.

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