パフォーマンスの問題により、公開コードをスレッドに追加しました。
私のコードは次のとおりです。
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; }
}
しかし、私は得るObject reference not set to an instance of an object" error on "course.Publish(createduser);
Umbraco のバージョンは 4.8.1 です。
このエラーは が原因である可能性がありますcourse.HttpContext
。価値がありnull
ます。
ただしcourse.HttpContext = httpcontextformail.HttpContextReference;
、警告を表示するように設定すると
" umbraco.cms.businesslogic.web.document.HttpContext is obsolete. Do not use this. Get
httpContext via regular ASP.Net methods instead
.
このコードをデバッグするとHttpContext
、httpcontextformail.HttpContextReference
.
しかし、実行後 course.HttpContext = httpcontextformail.HttpContextReference;
、course.HttpContext
まだ null 値があります。
私を助けてください
ありがとう