未将对象引用设置为umbraco 4.8.1中的对象实例
由于性能问题,我在线程中添加了发布代码 我的代码是:未将对象引用设置为umbraco 4.8.1中的对象实例,umbraco,Umbraco,由于性能问题,我在线程中添加了发布代码 我的代码是: public void functionname() { ---------------- ------------ try { HttpontextforMailSending gethttpcontextforpublish2 = new HttpontextforMailSending() { HttpContextReference = H
public void functionname()
{
----------------
------------
try
{
HttpontextforMailSending gethttpcontextforpublish2 = new HttpontextforMailSending()
{
HttpContextReference = HttpContext.Current,
courseDocument = shortCourseDocument,
createdUser = new User(0)
};
Thread t2 = new Thread(PublishDocument);
t2.Start(gethttpcontextforpublish2);
}
catch { }
-------------
-----------
}
private void PublishDocument(object input)
{
HttpontextforMailSending httpcontextformail = (HttpontextforMailSending)input;
Document course = httpcontextformail.courseDocument;
User createduser = httpcontextformail.createdUser;
if (course != null && createduser != null)
{
course.Publish(createduser);
umbraco.library.UpdateDocumentCache(course.Id);
}
}
public class HttpontextforMailSending
{
public HttpContext HttpContextReference { get; set; }
public Document courseDocument { get; set; }
public User createdUser { get; set; }
}
但是我得到的对象引用没有设置为对象“出错”的实例course.Publish(createduser)代码>
Umbraco版本是4.8.1
此错误可能是由于课程.HttpContext
引起的。它具有null
值
但是,当我将其设置为course.HttpContext=httpcontextformail.HttpContextReference代码>它显示一个警告
“umbraco.cms.businesslogic.web.document.HttpContext已过时。请不要使用此选项。改为通过常规ASP.Net方法获取
HttpContext
调试此代码时,我在httpcontextformail.HttpContextReference
上获得HttpContext
但是在执行course.HttpContext=httpcontextformail.HttpContextReference;
之后,course.HttpContext
仍然具有空值
请帮帮我
谢谢Umbraco希望在web请求中使用,因此如果在另一个应用程序等的web请求之外调用API,则该API将不起作用
如果您希望在外部使用Umbraco API执行某些操作,则需要使用(或类似)使API具有所需的HttpContext
Umbraco Base是一个类似REST的系统,允许通过在Umbraco上下文中定义的URL执行查询或代码。您能否详细介绍一下如何调用此代码?它是作为事件侦听器从Umbraco内部调用的,还是您试图从计划任务调用它?