Take the community feedback survey now.
Take the community feedback survey now.
Is this an upgraded project from CMS11? In many cases those lack a wwwroot folder which is what WebRootPath will look for. In that case, either specify the path in your startup or use ContentRootPath instead.
Try IWebHostEnvironment.WebRootPath (from the Microsoft.AspNetCore.Hosting namespace).
And also, you can inject IWebHostEnvironment in the Startup constructor, capture it in a private field for use in the ConfigureServices method. Probably also in the Configure method.
FYI, this is the answer I got from the support.
As the environment at DXP is Linux OS inside a docker container, therefore, it's not possible to get a correct ContentRootPath or write files to web disk.
So you may need to find an alternative solution, such as storing XML sitemap in the database and create a custom MVC routing to return the sitemap content programmatically.
Instead of creating your own implementation for creating XML sitemaps, why not try the following package, I have used this in many projects and it works great Geta/geta-optimizely-sitemaps: Search engine sitemaps.xml for Optimizely CMS 12 and Commerce 14
Hello,
I'm having trouble getting the WebRootPath to work in DXP, Optimizely 12.
In startup.cs im using this code and it returns an empty string
var epiWebHostingEnvironment = app.ApplicationServices.GetRequiredService<IWebHostingEnvironment>();
epiWebHostingEnvironment.WebRootPath
private readonly EPiServer.Web.IWebHostingEnvironment _env;
if(string.IsNullOrEmpty(_env.WebRootPath))
{
return "Job terminated. WebRootPath is empty!";
}