未将对象引用设置为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内部调用的,还是您试图从计划任务调用它?