2

I have a SSRS 2016 instance which gives me below error whenever I try to view my existing report subscriptions:

An error has occurred. Something went wrong. Please try again later.

Strange thing is subscriptions are working fine and I can even create new subscriptions. It only errors out while viewing subscriptions on report server. When checked in database subscriptions entries are there in the table. This is happening on my PROD environment but not on DEV environment. I tried to replicate this same error in DEV but didn't succeed. Report Server config, policy and web config are same on both PROD and DEV. I am wondering why it is happening only on PROD but not in DEV. Below errors are logged in Report Server logs when this error occurs:

Microsoft.ReportingServices.Portal.WebHost!extensionfactory!57!12/20/2019-13:39:30:: e ERROR: Exception caught instantiating Report Server Email report server extension: Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: The report server has encountered a configuration error.  ---> System.IO.FileNotFoundException: Could not load file or assembly 'ReportingServicesEmailDeliveryProvider' or one of its dependencies. The system cannot find the file specified..
Microsoft.ReportingServices.Portal.WebHost!library!57!12/20/2019-13:39:30:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: Unable to load assembly ReportingServicesEmailDeliveryProvider, Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: The report server has encountered a configuration error.  ---> System.IO.FileNotFoundException: Could not load file or assembly 'ReportingServicesEmailDeliveryProvider' or one of its dependencies. The system cannot find the file specified.
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   at Microsoft.ReportingServices.Diagnostics.ExtensionClassFactory.LoadAssemblyFromFile(String name)
   --- End of inner exception stack trace ---;
Microsoft.ReportingServices.Portal.WebHost!extensionfactory!57!12/20/2019-13:39:30:: e ERROR: Exception caught instantiating Report Server Email report server extension: Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: The report server has encountered a configuration error.  ---> System.IO.FileNotFoundException: Could not load file or assembly 'ReportingServicesEmailDeliveryProvider' or one of its dependencies. The system cannot find the file specified..
Microsoft.ReportingServices.Portal.WebHost!reportserverwebapp!57!12/20/2019-13:39:30:: e ERROR: [4ti0n45o]: OData exception occurred: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Sequence contains no matching element
   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)
   at Microsoft.ReportingServices.Portal.Repositories.SystemService.PopulateLocalizedExtensionNames(IPrincipal userPrincipal, List`1 subscriptions)
   at Microsoft.ReportingServices.Portal.Repositories.CatalogItemRepository.GetSubscriptions(IPrincipal userPrincipal, String itemPath)
   at Model.ReportRepository.LoadSubscriptions()
   at Model.Report.get_Subscriptions()
   at lambda_method(Closure , ReportRepository )
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Web.OData.Query.Expressions.SelectExpandBinder.Bind(Object entity)
   at System.Web.OData.Query.SelectExpandQueryOption.ApplyTo(Object entity, ODataQuerySettings settings, IAssembliesResolver assembliesResolver)
   at System.Web.OData.Query.ODataQueryOptions.ApplySelectExpand[T](T entity, ODataQuerySettings querySettings)
   at System.Web.OData.Query.ODataQueryOptions.ApplyTo(Object entity, ODataQuerySettings querySettings)
   at System.Web.OData.EnableQueryAttribute.ExecuteQuery(Object response, HttpRequestMessage request, HttpActionDescriptor actionDescriptor)
   at System.Web.OData.EnableQueryAttribute.OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
   at System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutedAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext().

The above errors tells me that it couldn't find ReportingServicesEmailDeliveryProvider assembly/dll. However I have checked in my Report Server's \bin directory and the ReportingServicesEmailDeliveryProvider.dll already exists and I have also copied it to the public and private assembly folders of Visual Studio. But still the error happens. Also, along with this error I get one more error at the same time in Event Viewer Security log:

Log Name:      Security
Source:        Microsoft-Windows-Security-Auditing
Date:          20/12/2019 13:39:30
Event ID:      4673
Task Category: Sensitive Privilege Use
Level:         Information
Keywords:      Audit Failure
User:          N/A
Computer:      Test.corp.com
Description:
A privileged service was called.

Subject:
Security ID:  Corp\Test
Account Name:  svctest
Account Domain:
corp
Logon ID:  0x254342CE

Service:
Server:  Security
Service Name:  -

Process:
Process ID:  0x2544
Process Name:  C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\RSWebApp\Microsoft.ReportingServices.Portal.WebHost.exe

Service Request Information:
Privileges:  SeTcbPrivilege

Not sure if these errors are related. Can someone please help in finding the root cause and fix for this issue?

The versions in production and development match exactly.

SSRS service accounts on both the boxes are administrator on the box.

SQL Server: 13.0.4259.0

Answers to questions:

Can you confirm that the time you are seeing the error on the site and the errors you're seeing in the logs are occurring at or around the same time?

Timings do match and I get the same error in Microsoft.ReportingServices.Portal.WebHost_%M_%D_%Y_%H_%M_%S.log file of could not load file or assembly whenever I click on subscriptions in SSRS portal.

Can you cross-check your rsreportserver.config files between your DEV and PROD environments?

Everything is same between PROD and DEV as far as rsreportserver.config is concerned. In addition to this, I did compare web.config and rssvrpolicy.config as well and both of them do match as well.

Also to reproduce the scenario as a test, I replaced entire contents of PROD SSRS bin directory to DEV SSRS bin directory but it was still working in DEV and there were no errors.


Please let me know if any further details are needed.

1
  • @sqlprodba what was the solution?
    – Beta 101
    Jun 10 at 17:16

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.