I've got a multilingual site that uses swedish, english, russian and chinese characters.
I've found out that the macro refuses to load if you try to load the macro on a page with a very long name (specificly on chinese and russian, mayhaps because they use more bytes or something with their characters) it refuses to load the macro on that page.
I load the macro as such:
@Umbraco.RenderMacro("umbracoforms.RenderForm", new { FormGuid = Model.FormGuid })
So when I get to this line in InsertUmbracoForm.cshtml it crashes:
Html.RenderAction("Render", "UmbracoForms", new {formId = g});
And the stacktrace is:
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath)
at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath)
at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path)
at System.Web.HttpRequest.MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, Boolean allowCrossAppMapping)
at System.Web.HttpServerUtility.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm, Boolean setPreviousPage)
at System.Web.HttpServerUtilityWrapper.Execute(IHttpHandler handler, TextWriter writer, Boolean preserveForm)
at System.Web.Mvc.Html.ChildActionExtensions.ActionHelper(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues, TextWriter textWriter)
at System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper htmlHelper, String actionName, String controllerName, RouteValueDictionary routeValues)
at ASP._Page_Views_MacroPartials_InsertUmbracoForm_cshtml.Execute() in z:\Utveckling\SCC\trunk\Web\Views\MacroPartials\InsertUmbracoForm.cshtml:line 10
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at Umbraco.Core.Profiling.ProfilingView.Render(ViewContext viewContext, TextWriter writer)
at Umbraco.Web.Mvc.ControllerExtensions.RenderViewResultAsString(ControllerBase controller, ViewResultBase viewResult)
at Umbraco.Web.Macros.PartialViewMacroEngine.Execute(MacroModel macro, IPublishedContent content)
at umbraco.macro.LoadPartialViewMacro(MacroModel macro)
at umbraco.macro.renderMacro(Hashtable pageElements, Int32 pageId)
If I'm not mistaken, this means that umbraco forms is trying to write something to disk (System.IO.Path)?
So, what is it actually trying to write to disk? And why?
I donĀ“t think that you are getting this because of the Forms. You are saying that you have pages with a very long name specificly on chinese and russian. I think that you are getting this error because that you are exceeding the limitationon characters for a page name of 260 characters.
I'm not saying this is the problem but just want to acknowledge that Umbraco Forms will write a new form template to disk. This happens whenever you create a new form. They are located in /App_Plugins/UmbracoForms/Data/forms/
Well, it does look very similar, but the thing is that the page works. It's just the Form part that says it can't render the partial. If this bug did exist in Umbraco it's gone now, because the page loads just fine except for the form-partial...
And thanks Matthew,
Didn't know that. But still, its when trying to render an already existing form on a page that I get this error...
Having exactly the same problem here... Hebrew node names makes long URL , but less then 260 - because the page without forms is rendered. when I add the form - it throws the same error...
did you find any solution?
OK, googled to this magic in the web.config, hope it helps anyone:
Umbraco 7.2.1 - Forms writing something to disk?
Hello again :)
I've got a multilingual site that uses swedish, english, russian and chinese characters.
I've found out that the macro refuses to load if you try to load the macro on a page with a very long name (specificly on chinese and russian, mayhaps because they use more bytes or something with their characters) it refuses to load the macro on that page.
I load the macro as such:
So when I get to this line in InsertUmbracoForm.cshtml it crashes:
And the stacktrace is:
If I'm not mistaken, this means that umbraco forms is trying to write something to disk (System.IO.Path)?
So, what is it actually trying to write to disk? And why?
Kind regards,
Mats
Hi Mats,
I donĀ“t think that you are getting this because of the Forms. You are saying that you have pages with a very long name specificly on chinese and russian. I think that you are getting this error because that you are exceeding the limitation on characters for a page name of 260 characters.
Try to see this issue http://issues.umbraco.org/issue/U4-1955 from the issue tracker.
/Dennis
I'm not saying this is the problem but just want to acknowledge that Umbraco Forms will write a new form template to disk. This happens whenever you create a new form. They are located in /App_Plugins/UmbracoForms/Data/forms/
Hi there Dennis :)
Well, it does look very similar, but the thing is that the page works. It's just the Form part that says it can't render the partial. If this bug did exist in Umbraco it's gone now, because the page loads just fine except for the form-partial...
And thanks Matthew,
Didn't know that. But still, its when trying to render an already existing form on a page that I get this error...
/Mats
Having exactly the same problem here... Hebrew node names makes long URL , but less then 260 - because the page without forms is rendered. when I add the form - it throws the same error...
did you find any solution?
OK, googled to this magic in the web.config, hope it helps anyone:
is working on a reply...