Dha*_*777 0 asp.net sitecore sitecore6
我有一个电子邮件发送类,当激活项目时它会生成一个指向仪表板的链接,如下所示,
Item dashboardItem = DatabaseManager.WebDatabase.GetItem"/sitecore/content/Public/Pages/Users/Dashboard");
string url = LinkManager.GetItemUrl(dashboardItem, opt);
生成的URL http://mysite/Pages/Users/Dashboard
,这是预期的行为.这是用户可访问的URL.
我正在尝试使用计划任务生成相同的电子邮件.但是当它运行并尝试执行如下生成的代码URL时,
http://127.0.0.1/sitecore/content/Public/Pages/Users/Dashboard
好像我们使用调度程序时LinkManager无法识别与项目映射的URL.如何使用计划任务生成用户可访问的URL?
发生这种情况是因为计划任务在不同的SiteContext中运行.
在任务代码中,您应手动切换到包含要链接到的项目的SiteContext.
这样:
using (new Sitecore.Sites.SiteContextSwitcher(
Sitecore.Sites.SiteContext.GetSite("your_site_name")))
{
// load item & generate url here ...
}
Run Code Online (Sandbox Code Playgroud)
your_site_name
是配置中<sites>
配置的站点名称.
归档时间: |
|
查看次数: |
733 次 |
最近记录: |