Error executing template "Designs/Designa/_parsed/Dw_Page.parsed.cshtml"
System.IO.IOException: The process cannot access the file 'E:\WEB\designa.dk\Files\System\EventNotifications\65eca2995c2e0a4f7bfb55beff0a60fe_SentTime' because it is being used by another process.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
   at Dynamicweb.EventViewerSubscriber.SaveLastSentTime(LogEventNotification logEventNotification)
   at Dynamicweb.EventViewerSubscriber.SendMessage(LogEventNotification logEventNotification)
   at Dynamicweb.EventViewerSubscriber.OnNotify(String NotificationArgs, NotificationArgs args)
   at Dynamicweb.Extensibility.Notifications.NotificationManager.Notify(String notification, NotificationArgs eventArgs)
   at Dynamicweb.Logging.LoggerBase.Log(LogLevel level, String message, Exception ex)
   at Dynamicweb.Frontend.SearchEngineFriendlyURLs.ResolveQueryString(String fullQueryString, Int32 pageid, String alternatekey)
   at Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(String internalLink)
   at CompiledRazorTemplates.Dynamic.RazorEngine_2bc980a5673b45809478905d55fcba98.Execute() in E:\WEB\designa.dk\Files\Templates\Designs\Designa\_parsed\Dw_Page.parsed.cshtml:line 16
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Designa.Website.CustomModules.ViewModels 3 @using Designa.Website.CustomModules 4 @using Designa.Website.CustomModules.Helpers 5 @using Dynamicweb.Frontend 6 @using Dynamicweb.Rendering 7 8 @{ 9 var httpRequest = System.Web.HttpContext.Current.Request; 10 var scheme = httpRequest.Url.Scheme; 11 var host = httpRequest.Url.Host; 12 var pageTitle = PageView.Current().Page.MetaTitle; 13 var metaDescription = PageView.Current().Page.Description; 14 var frontPageId = Pageview.GetPageviewModel().Area.FirstPage.ID.ToString(); 15 var currentPageId = PageView.Current().Page.ID.ToString(); 16 var currentUrl = SearchEngineFriendlyURLs.GetFriendlyUrl(currentPageId); 17 var canonicalUrl = TemplateHelper.GetCanonical(httpRequest, Pageview.ID); 18 var getNoIndexNoFollow = TemplateHelper.GetNoIndexNoFollow(httpRequest, Pageview.ID); 19 var pathToStyles = Constants.DistPath + "/css/master.min.css"; 20 var pathToJsManifest = Constants.DistPath + "/scripts/manifest.bundle.js"; 21 var pathToJsVendor = Constants.DistPath + "/scripts/vendor.bundle.js"; 22 var pathToJsApp = Constants.DistPath + "/scripts/app.bundle.js"; 23 var pathToCustomScripts = Constants.ProjectPath + "/Scripts/custom.js"; 24 var pathToLogo = Constants.DistPath + "/images/logo.svg"; 25 var productId = System.Web.HttpContext.Current.Request.QueryString["productid"]; 26 var gtm = Dynamicweb.Frontend.PageView.Current().AreaSettings.GetString("GTM_ID"); 27 28 } 29 <!DOCTYPE html> 30 <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName" xmlns:xlink="http://www.w3.org/1999/xlink"> 31 <head> 32 <meta charset="utf-8"> 33 <meta name="viewport" content="width=device-width, initial-scale=1"> 34 <link rel="preconnect" href="https://fonts.gstatic.com"> 35 <link rel="preconnect" as="style" href="https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Prata&family=Spartan:wght@500;700&display=swap"> 36 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Prata&family=Spartan:wght@500;700&display=swap" media="print" onload="this.media = 'all'"> 37 <noscript> 38 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Prata&family=Spartan:wght@500;700&display=swap"> 39 </noscript> 40 41 @if (host.Contains("local") || host.Contains("stagingsite") || host.Contains("ditnyewebsite")) 42 { 43 <meta name="robots" content="noindex, nofollow"> 44 } 45 else 46 { 47 if(!string.IsNullOrEmpty(getNoIndexNoFollow)) 48 { 49 @getNoIndexNoFollow 50 } 51 } 52 53 <title>@GetValue("Title")</title> 54 55 @if (string.IsNullOrEmpty(canonicalUrl) && currentPageId == frontPageId) // Frontpage 56 { 57 <link rel="canonical" href="/"> 58 } 59 else if (!string.IsNullOrEmpty(canonicalUrl)) 60 { 61 <link rel="canonical" href="@canonicalUrl"> 62 } 63 else 64 { 65 <link rel="canonical" href="@PageView.Current().Page.MetaCanonical"> 66 } 67 68 @if (!string.IsNullOrEmpty(metaDescription)) 69 { 70 <meta name="description" content="@metaDescription"> 71 } 72 <meta name="p:domain_verify" content="b2eeee1f0a8002e1df4ad3d202252517"> 73 <meta property="og:image" content="@TemplateHelper.GetAbsoluteUrl(pathToLogo)"> 74 <link media="all" href="@TemplateHelper.GetRevisionNumber(pathToStyles)" rel="stylesheet"> 75 <link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png"> 76 <link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png"> 77 <link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png"> 78 <script src="@TemplateHelper.GetRevisionNumber(pathToCustomScripts)"></script> 79 80 @if (!host.Contains("local") && !String.IsNullOrEmpty(gtm)) 81 { 82 83 <!-- Google Tag Manager --> 84 <script> 85 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 86 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 87 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 88 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 89 })(window,document,'script','dataLayer','@gtm');</script> 90 <!-- End Google Tag Manager --> 91 } 92 <!-- TrustBox script --> 93 <script type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async=""></script> 94 <!-- End TrustBox script --> 95 </head> 96 <body class=""> 97 98 @if (!host.Contains("local") && !String.IsNullOrEmpty(gtm)) 99 { 100 <!-- Google Tag Manager (noscript) --> 101 <noscript> 102 <iframe src="https://www.googletagmanager.com/ns.html?id=@gtm" height="0" width="0" style="display:none;visibility:hidden"></iframe> 103 </noscript> 104 <!-- End Google Tag Manager (noscript) --> 105 } 106 107 @TemplateHelper.RenderPartial("Master/Partials/GlobalHeader.cshtml", new GlobalHeaderViewModel(Pageview)) 108 @TemplateHelper.RenderPartial("Master/Partials/Navigation.cshtml") 109 @*@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 110 @using Designa.Website.CustomModules 111 @using Designa.Website.CustomModules.Helpers 112 @using Designa.Website.CustomModules.Helpers.Models 113 @using Dynamicweb 114 @using Dynamicweb.Content 115 @using Dynamicweb.Ecommerce.Frontend 116 @using Dynamicweb.Frontend 117 118 @{ 119 var Button1Text = Pageview.AreaSettings.GetString("NavigationButton1Text"); 120 var Button1Link = Pageview.AreaSettings.GetString("NavigationButton1Link"); 121 122 var Button2Text = Pageview.AreaSettings.GetString("NavigationButton2Text"); 123 var Button2Link = Pageview.AreaSettings.GetString("NavigationButton2Link"); 124 125 var Button3Text = Pageview.AreaSettings.GetString("NavigationButton3Text"); 126 var Button3Link = Pageview.AreaSettings.GetString("NavigationButton3Link"); 127 128 var ctaImages = new List<CallToActionImage>(); 129 var ctaImageLinks = TemplateHelper.GetItemRelationListWithId(Pageview, "CTAImageLinks", "CTAImageLink"); 130 131 foreach (var ctaImage in ctaImageLinks) 132 { 133 ctaImages.Add(new CallToActionImage(ctaImage)); 134 } 135 136 137 var textCloseNavigation = Translate("NavigationOverlay.CloseNavigation", "Luk navigationen"); 138 } 139 140 <div class="navigation-overlay navigation-overlay--closed" id="js-navigation-overlay"> 141 <div class="container navigation-overlay__container"> 142 <div class="row navigation-overlay__row-navigation"> 143 <div class="col-xs-7 col-sm-9 col-lg-8 col-lg-offset-1 navigation-overlay__col" id="js-navigation-overlay__navigation"> 144 145 <nav class="navigation-desktop" v-bind:aria-hidden="navigationLayout === 'mobile'"> 146 <ul class="navigation-desktop__list"> 147 @RenderNavigationListItem("desktop1") 148 149 </ul> 150 151 <ul class="navigation-desktop__list-level-2"> 152 @RenderNavigationListItem("desktop2") 153 154 </ul> 155 </nav> 156 157 <nav class="navigation-mobile" v-bind:aria-hidden="navigationLayout === 'desktop'"> 158 <ul class="navigation-mobile__list"> 159 @RenderNavigationListItem("mobile") 160 </ul> 161 </nav> 162 </div> 163 <div class="col-xs-5 col-sm-3 col-lg-2 navigation-overlay__col"> 164 @if (!String.IsNullOrWhiteSpace(Button1Text) && !String.IsNullOrWhiteSpace(Button1Link)) 165 { 166 <a href="@Button1Link" property="url" class="button button--color-2 button--full-width">@Button1Text</a> 167 } 168 @if (!String.IsNullOrWhiteSpace(Button2Text) && !String.IsNullOrWhiteSpace(Button2Link)) 169 { 170 <a href="@Button2Link" property="url" class="button button--color-1-mid button--full-width">@Button2Text</a> 171 } 172 @if (!String.IsNullOrWhiteSpace(Button3Text) && !String.IsNullOrWhiteSpace(Button3Link)) 173 { 174 <a href="@Button3Link" property="url" class="button button--ghost-black button--full-width">@Button3Text</a> 175 } 176 </div> 177 178 </div> 179 <div class="row"> 180 <div class="col-xs-12"> 181 <ul class="highlights"> 182 @foreach (var ctaImage in ctaImages) { 183 <li class="highlights__item"> 184 <img class="lazyload lazyload-bg image lazyload-measure lazyload-bg " width="0" height="0" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="@ctaImage.ImageAltText" property="contentUrl" data-src="@ctaImage.ImageLink" data-query-obj='{"mode":"crop"}'> 185 <noscript v-if="false"> 186 <img src="@ctaImage.ImageLink?mode=crop&width=" alt="@ctaImage.ImageAltText"> 187 </noscript> 188 189 <a href="@ctaImage.PageLink" class="h3 highlights__link">@ctaImage.Name</a> 190 </li> 191 } 192 </ul> 193 </div> 194 </div> 195 196 </div> 197 198 <button type="button" class="close-overlay-button" @@click="close" title="@textCloseNavigation"> 199 <span class="visually-hidden">@textCloseNavigation</span> 200 </button> 201 </div> 202 203 @helper RenderNavigationListItem(string navigationType) 204 { 205 var rootNodes = Services.Pages.GetAreaNavigationTree(Pageview.AreaID).RootNodes.Where(x => x.IsPublished); 206 var currentContentItemPathIds = DWHelper.GetContentTreePageIds(Pageview.Page); 207 208 if(navigationType == "mobile") { 209 rootNodes = Services.Pages.GetAreaNavigationTree(Pageview.AreaID).RootNodes.Where(x => x.IsPublished); 210 } 211 212 int listCount = 0; 213 foreach (var node in rootNodes) 214 { 215 //Check børnebørn(e)børn osv 216 var children = node.Children.Where(x => x.IsPublished).OrderBy(x => x.Sort).ToList(); 217 bool hasChildren = children.Count > 0; 218 var dataHasSubnavigation = hasChildren ? "data-has-subnavigation=\"true\"" : ""; 219 var pageIsActive = currentContentItemPathIds.FirstOrDefault(x => x == node.ID) != 0; 220 var dataLevel1Active = pageIsActive ? "data-level-1-active=\"true\"" : ""; 221 222 var itemLevel = 1; 223 var activeVueClass = ""; 224 var vif=""; 225 var baseClass = "navigation-desktop"; 226 227 if(navigationType == "desktop2") { 228 itemLevel = 2; 229 vif="v-if=\"activeItemLevel1 === "+listCount+"\""; 230 } 231 232 if(navigationType == "mobile") { 233 baseClass = "navigation-mobile"; 234 } 235 236 if(navigationType == "desktop1" || navigationType == "mobile"){ 237 activeVueClass = "v-bind:class=\"{'"+baseClass+"__item-level-1--active': activeItemLevel1 === "+listCount+" }\""; 238 } 239 240 <li class="@(baseClass)__item-level-@itemLevel" @datahassubnavigation="" @datalevel1active="" @vif="" @activevueclass="" data-level-1-id="@listCount"> 241 242 @if(navigationType == "desktop1" || navigationType == "mobile"){ 243 if (hasChildren) 244 { 245 <button type="button" class="h5 @(baseClass)__link-level-1" @@click="show(@listCount)">@node.Title 246 <span class="navigation-overlay__arrow"> 247 <svg class="svg-icon navigation-overlay__svg" aria-hidden="true"> 248 <use xlink:href="/dist/icons/icons.svg#arrow-right"></use> 249 </svg> 250 </span> 251 </button> 252 }else{ 253 <a href="@(SearchEngineFriendlyURLs.GetFriendlyUrl(node.ID))" class="h5 @(baseClass)__link-level-1">@node.Title 254 <span class="navigation-overlay__arrow"> 255 <svg class="svg-icon navigation-overlay__svg" aria-hidden="true"> 256 <use xlink:href="/dist/icons/icons.svg#arrow-right"></use> 257 </svg> 258 </span> 259 </a> 260 } 261 } 262 263 @if(navigationType == "desktop2" || navigationType == "mobile"){ 264 if (hasChildren) 265 { 266 <ul class="@(baseClass)__sub-list"> 267 <li class="@(baseClass)__item-level-2"> 268 <a href="@SearchEngineFriendlyURLs.GetFriendlyUrl(node.ID)" class="@(baseClass)__link-level-2">@node.Title</a> 269 </li> 270 @foreach (var grandChild in children) 271 { 272 var pageLeve2Active = currentContentItemPathIds.FirstOrDefault(x => x == grandChild.ID) != 0; 273 var classLevel2Active = pageLeve2Active ? "navigation-desktop__item-level-2--active" : ""; 274 var classLevel2ActiveMobile = pageLeve2Active ? "--active" : ""; 275 276 <li class="@(baseClass)__item-level-2@(classLevel2ActiveMobile) @classLevel2Active"> 277 <a href="@SearchEngineFriendlyURLs.GetFriendlyUrl(grandChild.ID)" class="@(baseClass)__link-level-2">@grandChild.Title</a> 278 </li> 279 } 280 </ul> 281 } 282 } 283 284 </li> 285 listCount++; 286 } 287 } 288 *@ 289 @TemplateHelper.RenderPartial("Master/Partials/Breadcrumb.cshtml") 290 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 291 292 293 294 <div id="content">@GetValue("DwContent(content)")</div> 295 296 @TemplateHelper.RenderPartial("Master/Partials/SearchOverlay.cshtml") 297 298 @TemplateHelper.RenderPartial("Master/Partials/GlobalFooter.cshtml", new GlobalFooterViewModel(Pageview)) 299 300 <script defer="" src="@TemplateHelper.GetRevisionNumber(pathToJsManifest)"></script> 301 <script defer="" src="@TemplateHelper.GetRevisionNumber(pathToJsVendor)"></script> 302 <script defer="" src="@TemplateHelper.GetRevisionNumber(pathToJsApp)"></script> 303 @TemplateHelper.RenderPartial("Master/Partials/GlobalSchema.cshtml") 304 </body> 305 </html> 306