Я пытаюсь использовать async-действия в MonoRail, но когда визуализируется представление, я получаю исключение NullReference, также тестируемое с файлом представления emtpy.Замок MonoRail с асинхронным представлением представления представления действия
Я также попытался вызвать RenderView ("uploadTags.vm") в EndUploadTags. Когда я вызываю RenderText (ы) в EndUploadTags, я не получаю исключения.
StackTrace:
[NullReferenceException: Object reference not set to an instance of an object.]
Castle.MonoRail.Framework.Services.DefaultCacheProvider.Get(String key) +163
Castle.MonoRail.Framework.Views.NVelocity.CustomResourceManager.GetResource(String resourceName, ResourceType resourceType, String encoding) +68
NVelocity.Runtime.RuntimeInstance.GetTemplate(String name, String encoding) +57
NVelocity.Runtime.RuntimeInstance.GetTemplate(String name) +82
NVelocity.App.VelocityEngine.GetTemplate(String name) +47
Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine.Process(String viewName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext) +564
Castle.MonoRail.Framework.Services.DefaultViewEngineManager.Process(String templateName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext) +237
Castle.MonoRail.Framework.Controller.ProcessView() +146
Castle.MonoRail.Framework.Controller.EndProcess() +1579
Castle.MonoRail.Framework.BaseAsyncHttpHandler.EndProcessRequest(IAsyncResult result) +141
[MonoRailException: Error processing MonoRail request. Action uploadtags on asyncController vendor]
Castle.MonoRail.Framework.BaseAsyncHttpHandler.EndProcessRequest(IAsyncResult result) +461
System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +86
Это мой тестовый код:
private Output output;
public delegate string Output();
private string DoNothing()
{
return "nothing";
}
private string Upload()
{
return "upload";
}
public IAsyncResult BeginUploadTags(HttpPostedFile xmlFile, Boolean doUpload)
{
if (IsPost)
{
output = Upload;
return output.BeginInvoke(ControllerContext.Async.Callback, null);
}
output = DoNothing;
return output.BeginInvoke(ControllerContext.Async.Callback, null);
}
public void EndUploadTags()
{
var s = output.EndInvoke(ControllerContext.Async.Result);
PropertyBag["logging"] = s;
}
Это не настоящий вопрос. Вы только просите более подробную информацию, пожалуйста, используйте комментарий для такого запроса. – greydet
Извините, я попробовал, но не могу найти, как это сделать. Может быть, я ограничен моим низким представителем? Да, у меня нет 50 rep (http://meta.stackexchange.com/questions/117496/missing-add-comment-link-button). –
Ведение журнала настраивается следующим образом: container.AddFacility («logging», new LoggingFacility (LoggerImplementation.Log4net, «log4net.config»)); – ZxCvBnM