URL-адрес веб-службы SSRS выдает ошибку (500) - PullRequest
0 голосов
/ 10 февраля 2019

Когда я пытаюсь получить доступ к URL-адресу веб-службы SSRS (например, http://SERVERNAME:1234/ReportServer/), он выдает ошибку 500. Однако URL-адрес веб-портала (http://SERVERNAME:1234/Reports/) работает нормально.Он даже предоставляет мне пользовательский интерфейс для служб отчетов SQL Server.

До сих пор я безуспешно пытался переустановить SSRS, изменить порты, учетные записи и базу данных (служба Reporting Services).бежит).Я действительно не согласен с идеями, и документация Microsoft ужасна в отношении этой конкретной проблемы, поскольку она предложила попытаться изменить разрешения учетной записи NETWORK SERVICE, что можно сделать после добавления одной из функций Windows (что, я могу добавить, можно сделать только прикорпоративная версия WIndows 10).

Кто-нибудь имел эту проблему или удалось найти обходной путь?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Хотя я отмечу сообщение Александра как ответ, потому что это было хорошим показателем того, как отладить проблему, я опубликую, что фактической проблемой были разрешения - мне пришлось предоставить учетной записи NETWORK SERVICE разрешения rwx для корня SSRSпапка (в моем случае это была E:\Program Files\Microsoft SQL Server Reporting Services; Свойства -> Безопасность -> Редактировать ...).

0 голосов
/ 10 февраля 2019

Экземпляр SSRS имеет два веб-приложения, которые довольно независимы.Обычно они имеют такие URL:

  1. http://ServerName/Reports
  2. http://ServerName/ReportServer

В вашем случае кажется, что первый настроен и работает правильно, а второйодин провал. Причину ошибки можно найти в файлах журналов , которые хранятся в папке экземпляра SSRS, например:

D: \ SQLData \ MSRS13.MSSQLSERVER \ Reporting Services \ LogFiles

Этот путь может быть другим, в зависимости от того, что было выбрано при первоначальной установке в качестве каталога экземпляра.Его можно найти, открыв диспетчер задач и обнаружив местоположение файла ReportingServicesService.exe :

enter image description here

Затем вВ каталоге LogFiles откройте самый последний файл журнала и проверьте сообщения с категорией ERROR, например:

ERROR: Throwing Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Query execution failed for dataset 'RequestTypeList'. ---> System.Data.SqlClient.SqlException: Invalid object name 'dbo.FactHistoricTrend'.
Could not use view or function 'dbo.FactFlatSSRS_Trend' because of binding errors.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at Microsoft.ReportingServices.DataExtensions.SqlCommandWrapperExtension.ExecuteReader(CommandBehavior behavior)
   at Microsoft.ReportingServices.OnDemandProcessing.RuntimeLiveQueryExecutor.ExecuteReader(IJobContext jobContext, DataSourceErrorInspector errorInspector, String commandText)
   --- End of inner exception stack trace ---;

Таким образом, вы узнаете, в чем причина ошибки 500 вашей веб-службы ReportServer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...