Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Rager
Frequent Visitor

Power Bi Report Server getting http 500 on trying to get allowed actions with custom security ext.

Hi,

 

while trying to access portal part of power bi report server, requests like this:

https://reportserver/Reports/api/v2.0/CatalogItems(Path=%27/%27)/AllowedActions

https://bireportserver/Reports/api/v2.0/Folders(Path=%27/%27)/AllowedActions

 

get http 500

 

Following json is responded

 

{
"error":{
"code":"","message":"An error has occurred.","innererror":{
"message":"The property 'Action[Nullable=False]' of type 'Edm.String' has a null value, which is not allowed.","type":"Microsoft.OData.Core.ODataException","stacktrace":" at Microsoft.OData.Core.WriterValidationUtils.ValidateNullPropertyValue(IEdmTypeReference expectedPropertyTypeReference, String propertyName, ODataWriterBehavior writerBehavior, IEdmModel model, Boolean bypassValidation)\r\n at Microsoft.OData.Core.JsonLight.ODataJsonLightPropertySerializer.WriteProperty(ODataProperty property, IEdmStructuredType owningType, Boolean isTopLevel, Boolean allowStreamProperty, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, ProjectedPropertiesAnnotation projectedProperties)\r\n at Microsoft.OData.Core.JsonLight.ODataJsonLightPropertySerializer.WriteProperties(IEdmStructuredType owningType, IEnumerable`1 properties, Boolean isComplexValue, DuplicatePropertyNamesChecker duplicatePropertyNamesChecker, ProjectedPropertiesAnnotation projectedProperties)\r\n at Microsoft.OData.Core.JsonLight.ODataJsonLightWriter.StartEntry(ODataEntry entry)\r\n at Microsoft.OData.Core.ODataWriterCore.InterceptException(Action action)\r\n at Microsoft.OData.Core.ODataWriterCore.WriteStartEntryImplementation(ODataEntry entry)\r\n at System.Web.OData.Formatter.Serialization.ODataEntityTypeSerializer.WriteEntry(Object graph, ODataWriter writer, ODataSerializerContext writeContext)\r\n at System.Web.OData.Formatter.Serialization.ODataFeedSerializer.WriteFeed(IEnumerable enumerable, IEdmTypeReference feedType, ODataWriter writer, ODataSerializerContext writeContext)\r\n at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content, HttpContentHeaders contentHeaders)\r\n at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Owin.HttpMessageHandlerAdapter.<BufferResponseContentAsync>d__13.MoveNext()"
}
}
}

 

But, when i switch to account, which is stated in rsreportserver.config as admin - everything works fine.

 

Couple of words about configuration:

1. Power Bi Report Server is installed on Win Serv 2012r2. Native mode. Service account is a domain one. Web service and portal urls are default ones. Db is mssql17, RS connected via service account.

2. Custom extension works perfectly fine on SSRS16. All the configuration, except generating new machine keys and refferencing the correct Microsoft.ReportingServices.Interfaces.dll (they are different for different vesions of power bi, and so with ssrs) are the same.
As for the power bi installation, my custom security extension logs show that it has checked forder operations for account. So, i think, that error is somewhere else but I'm not sure about that.

 

I have noticed, that on ssrs such requests refer to apiv1, as follows:

https://ssrsserver/Reports/api/v1.0/AllowedActions(path=@path)?@path=%27/%27

which works perfectly.

 

RSPortal_%date%.log

shows such traces:

2018-09-06 20:37:34.1846|INFO|13|Received request GET /api/v2.0/CatalogItems%28Path%3D%27/%27%29/AllowedActions| RequestID = s_c187c65c-640b-4089-9497-34b57d7bbd6f

2018-09-06 20:37:41.2561|INFO|21|Sending response. Response code 500, Elapsed time 0:00:07,0757878| RequestID = s_c187c65c-640b-4089-9497-34b57d7bbd6f


Can't figure out what am i missing. Would appreciate any help.

1 ACCEPTED SOLUTION
Rager
Frequent Visitor

My bad. According to the fact, that admin config was working fine, and due to logs that showed, that extension has tried to return correct info for CheckAccess() method, i investigated, that part of authorization code was imported for ssrs16, and should be replaced for ssrs17 one ( hashtables were switched to dictionaries). After that the issue was resolved.

 

Anyway, thx for reading, maybe it'll help someone some day.

View solution in original post

1 REPLY 1
Rager
Frequent Visitor

My bad. According to the fact, that admin config was working fine, and due to logs that showed, that extension has tried to return correct info for CheckAccess() method, i investigated, that part of authorization code was imported for ssrs16, and should be replaced for ssrs17 one ( hashtables were switched to dictionaries). After that the issue was resolved.

 

Anyway, thx for reading, maybe it'll help someone some day.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.