I have a dashboard running under an internal private SSL cert that is trusted on our internal network. The dashboard functions correctly using Chrome, Edge, and Firefox. However, when the dashboard is embedded in a Teams channel using the Website add-in the dashboard doesn’t function. All I get is 'Value cannot be null. (Parameter ‘Source’). Nothing shows in the logs. I have another website also running using an internal private SSL but it works correctly. That site is hosted in IIS and is html. The PU dashboard is hosted using Kestrel.
The affected site uses UDGraph and UDTable extensively and loads the data for the graphs and tables from csv files stored in the dashboard folder in the repository. Alot of the data is stored in Cache variables to reduce the reload time on the graphs and tables. Everything loads correctly in a browser but doesn’t seem to load in the Teams Web channel. Anyone have any thoughts on why this is happening?
Product: PowerShell Universal
Version: 4.2.21
Stab in the dark here, but I saw an appsetting (‘CookiePolicy’) which was something to do with using PSU in iframes, maybe worth a shot:
App Settings | v4 | PowerShell Universal
I tried this in ‘new’ teams and got a white page with nothing, and in the ‘old’ teams client it loaded but I had similar issues as you with components not loading, udgraph and udtable for example didnt load in at all. (although i havent tried the appsetting above)
Teams honestly sucks for it’s integrated website/browser tabs, I’ve given up on it before with other non PSU websites in the past. If it’s not a ‘simple’ website, it often wont handle it well.
Thanks, i will look into that. I found an article from the MS teams blog that indicates they are aware of issues with the website plugin and their solution is it will be configured to open in a browser instead of embed. This is supposed to release July 2024.
Upcoming updates to loading websites in Teams tabs (microsoft.com)
1 Like
Just tested this and setting “CookiePolicy” : “SameSiteNone” fixes the issue and the site correctly displays in Teams website channel. For reference the setting has to be under the Kestrel node and not under the Endpoints node. IE.
“Kestrel”: {
“Endpoints”: {
“HTTP”: {
“Url”: “http://:5000"
},
“HTTPS”: {
“Url”: "https://:8443”,
“Certificate”: {
“Thumbprint”: “redacted”,
“Store”: “WebHosting”,
“Location”: “LocalMachine”,
“AllowInvalid”: “true”
}
}
},
“Limits”: {
“MaxRequestHeadersTotalSize”: 48000
},
“CookiePolicy” : “SameSiteNone”
},
1 Like