J'essaie d'utiliser des actions asynchrones dans MonoRail mais lorsque la vue est rendue, j'obtiens une exception NullReference, également testée avec le fichier emtpy view.Castle MonoRail avec affichage d'action asynchrone rendu exception
J'ai également essayé d'appeler RenderView ("uploadTags.vm") dans EndUploadTags. Lorsque j'appelle RenderText (s) dans EndUploadTags je ne reçois pas l'exception.
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
Ceci est mon code de test:
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;
}
Ceci n'est pas une vraie réponse à la question. Vous ne demandez que plus de détails, s'il vous plaît utiliser un commentaire pour une telle demande – greydet
Désolé, j'ai essayé, mais je ne peux pas trouver comment faire cela. Peut-être que je suis limité par mon bas rep? Oui, je n'ai pas 50 rep (http://meta.stackexchange.com/questions/117496/missing-add-comment-link-button). –
La journalisation est configurée comme suit: container.AddFacility ("logging", nouvelle LoggingFacility (LoggerImplementation.Log4net, "log4net.config")); – ZxCvBnM