2012-06-11 27 views
12

Tôi có Máy chủ Báo cáo SQL Server 2008 R2 chạy trên máy tính Windows 7 cũng như một ứng dụng ASP.NET. Ứng dụng ASP.NET đưa ra yêu cầu tới Report Server để hiển thị danh sách các báo cáo, tạo báo cáo, v.v. Ứng dụng ASP.NET của tôi thành công nhận danh sách báo cáo nhưng khi nó cố gắng kết xuất báo cáo, tôi nhận được lỗi sau:Vấn đề cấp phép cho AppPool với Truy cập Máy chủ Báo cáo

The permissions granted to user 'IIS APPPOOL\DefaultAppPool' are insufficient for performing this operation. (rsAccessDenied) 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: Microsoft.Reporting.WebForms.ReportServerException: The permissions granted to user 'IIS APPPOOL\DefaultAppPool' are insufficient for performing this operation. (rsAccessDenied) 

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

Stack Trace: 

[ReportServerException: The permissions granted to user 'IIS APPPOOL\DefaultAppPool' are insufficient for performing this operation. (rsAccessDenied)] 
Microsoft.Reporting.WebForms.ServerReportSoapProxy.OnSoapException(SoapException e) +89 
Microsoft.Reporting.WebForms.Internal.Soap.ReportingServices2005.Execution.ProxyMethodInvocation.Execute(RSExecutionConnection connection, ProxyMethod`1 initialMethod, ProxyMethod`1 retryMethod) +404 
Microsoft.Reporting.WebForms.Internal.Soap.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID) +180 
Microsoft.Reporting.WebForms.ServerReport.EnsureExecutionSession() +79 
Microsoft.Reporting.WebForms.ServerReport.GetParameters() +54 

Lưu ý: Cơ sở mã tương tự này đã hoạt động tốt trên nhiều máy chạy Windows 7 và Windows Server 2008. Iv'e đang thử nhiều thứ khác nhau dựa trên tìm kiếm trên web nhưng chưa tìm được giải pháp. Bất kỳ cái nhìn sâu sắc vào điều này sẽ được đánh giá rất nhiều.

+2

bạn đã đảm bảo rằng nhận dạng APPPool, 'IIS APPPOOL \ DefaultAppPool' có quyền truy cập vào máy chủ báo cáo hay không. Nó phải có ít nhất truy cập trình duyệt – mreyeros

+0

Điều đó đã giúp tôi. Nếu bạn không nhớ tôi sẽ đưa nó lên như một câu trả lời để nó có thể nhìn thấy được. –

+0

Để có thay đổi tạm thời nhanh chóng, tôi có thể thực hiện việc này. Tôi thấy lỗi này khi gỡ lỗi trong Visual Studio. Tôi nhận thấy thuộc tính dự án của tôi> web> máy chủ, có lựa chọn 'Sử dụng máy chủ Local IIS Wev'. Tôi thường làm điều này để nhân rộng môi trường sản xuất. Chuyển sang 'Sử dụng Visual Studio Development Server' cho phép tôi gỡ lỗi báo cáo. – JabberwockyDecompiler

Trả lời

23

Cuối cùng tìm ra. Dịch vụ báo cáo của tôi đã được cấu hình cho một tài khoản cục bộ trong khi Hồ bơi ứng dụng của tôi cho IIS được cấu hình để ApplicationPoolIdentity. Tôi đã thay đổi Application Pool thành LocalSystem và nó đã sửa nó. Hy vọng rằng thông tin này sẽ hữu ích cho người khác vì tôi lãng phí vài giờ để tìm hiểu điều này.

+0

Cảm ơn bạn đã dành thời gian và chia sẻ câu trả lời! Đừng quên đánh dấu nó là câu trả lời được chấp nhận! – Jeroen

+3

Để làm rõ cho những người khác cần thông tin này: Hồ bơi ứng dụng> [YourApp]> Thiết lập mặc định hồ bơi ứng dụng> Trong mô hình xử lý, thay đổi Identity thành 'LocalSystem' –

+3

không phải là điều nguy hiểm khi chạy Application Pool trong tài khoản hệ thống? – Axarydax

4

Hầu như tình huống tương tự ở đây ngoại trừ IIS và máy chủ báo cáo chạy trên Windows Server 2008 R2. Tôi đã từng sử dụng ứng dụng asp.net với hồ bơi ứng dụng riêng và mọi thứ hoạt động. Khi tôi thay đổi ứng dụng sang DefaultAppPool (do một vấn đề khác), tôi đã nhận được sự cố về quyền. Tôi đã thay đổi Identity của DefaultAppPool từ ApplicationPoolIdentity thành LocalSystem (trong IIS, Advanced Settings) và nó hoạt động trở lại.

14

Một giải pháp khác như mreyeros đặt trong nhận xét là cấp quyền cho trình duyệt cho người dùng IIS APPPOOL \ DefaultAppPool trong Trình quản lý báo cáo.

Để thực hiện điều đó, bạn nên mở trang web Trình quản lý báo cáo (http: /// Reports) trong thư mục Home bấm Cài đặt thư mục -> Bảo mật, bấm Vai trò gán mới và nhập IIS APPPOOL \ DefaultAppPool làm tên, chọn quyền từ danh sách.

+1

Đây là câu trả lời tôi đang tìm kiếm vì tôi không muốn đặt một tài khoản AD trên nhóm ứng dụng, nhưng tôi không thể làm việc này. Bạn đã thử bất cứ điều gì khác có liên quan đến việc cho phép apppool, ví dụ tôi đã thử khởi động lại máy chủ báo cáo. – JabberwockyDecompiler

+0

Michal, cảm ơn bạn rất nhiều vì đã đăng bài này! – CowboyBebop

3

Như Michal Drozdowicz đã nói, hãy tạo người dùng AppPool làm vai trò trình duyệt. Phần bị thiếu là

  1. Tên của người dùng (ít nhất là trên Windows 2012 là 'IIS APPPOOL \ tên hồ bơi' Đây là tên chính xác sẽ xuất hiện trên trang lỗi. tên người dùng khi được nhập trong hộp thoại cấp phép
  2. Vai trò trình duyệt phải được tạo tại thư mục chính. Tất nhiên, nếu bạn cần sự cho phép tại thư mục con, hãy đảm bảo rằng thư mục con vẫn đang kế thừa quyền hoặc đặt nó theo cách thủ công
2

Tôi không muốn đặt nhóm ứng dụng của mình thành LocalSystem vì tôi cho rằng đây là thực tiễn không tốt.

Đối với các đề xuất của Microsoft (không sử dụng LocalSystem, hãy sử dụng ApplicationPoolIdentity), xem tại đây: https://technet.microsoft.com/en-us/library/jj635855.aspx#AppPools.

Đối với biện minh, xem tại đây: https://stackoverflow.com/a/510225/44169

Tôi đã trải qua những lỗi được mô tả. Tôi đã thêm bản sắc hồ bơi ứng dụng của mình vào quyền truy cập thư mục Máy chủ báo cáo của tôi, nhưng điều này đã bị ghi đè bởi cài đặt bảo mật của thư mục con. Tôi đã sửa lỗi này bằng cách chọn thư mục con và nhấp vào "Hoàn nguyên về Cài đặt bảo mật gốc".

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