Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
I am following some lab content I found that demonstrates how to embed Power BI content into a web app. The PDfs are fairly straightforward but when I go to debug the code I get an error in the PBIEmbeddedManager.cs file that says "cannot convert from string to system.guid."
It is in relation to this line in the public class PbiEmbeddedManager:
private static readonly string workspaceId = ConfigurationManager.AppSettings["app-workspace-id"];The code is picking the id up from the Web.config file which has the workspaceid from the url as instructed in the notes. Unfortunately I have no idea how to alter the variable to a GUID or where to put it in the code. It seems I need to add another class?? but I am not certain.
Thanks in advance.
Solved! Go to Solution.
Got it working.
Had to add a bit of extra to the code supplied in git to some classes as per below:
/* renamed the variable to indicate it is a string for workspaceId and reportId*/
private static readonly string strworkspaceId = ConfigurationManager.AppSettings["app-workspace-id"];
private static string datasetId = ConfigurationManager.AppSettings["dataset-id"];
private static readonly string strreportId = ConfigurationManager.AppSettings["report-id"];Then in this class
public static async Task<ReportEmbeddingData> GetReportEmbeddingData()
{
PowerBIClient pbiClient = GetPowerBiClient();
/* in this class add the conversion to GUID*/
Guid workspaceId = Guid.Parse(strworkspaceId);
Guid reportId = Guid.Parse(strreportId);
var report = await pbiClient.Reports.GetReportInGroupAsync(workspaceId, reportId);
var embedUrl = report.EmbedUrl;
var reportName = report.Name;But in here it has to go back to string in the GUID("D") format
return new ReportEmbeddingData
{
/*in here converted the GUID back to string*/
reportId = reportId.ToString("D"),
reportName = reportName,With the report working.
Got it working.
Had to add a bit of extra to the code supplied in git to some classes as per below:
/* renamed the variable to indicate it is a string for workspaceId and reportId*/
private static readonly string strworkspaceId = ConfigurationManager.AppSettings["app-workspace-id"];
private static string datasetId = ConfigurationManager.AppSettings["dataset-id"];
private static readonly string strreportId = ConfigurationManager.AppSettings["report-id"];Then in this class
public static async Task<ReportEmbeddingData> GetReportEmbeddingData()
{
PowerBIClient pbiClient = GetPowerBiClient();
/* in this class add the conversion to GUID*/
Guid workspaceId = Guid.Parse(strworkspaceId);
Guid reportId = Guid.Parse(strreportId);
var report = await pbiClient.Reports.GetReportInGroupAsync(workspaceId, reportId);
var embedUrl = report.EmbedUrl;
var reportName = report.Name;But in here it has to go back to string in the GUID("D") format
return new ReportEmbeddingData
{
/*in here converted the GUID back to string*/
reportId = reportId.ToString("D"),
reportName = reportName,With the report working.
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 11 | |
| 7 | |
| 4 | |
| 3 | |
| 3 |