Siteimprove / CMS-plugin-Episerver

0 stars 7 forks source link

Plugin prevents saving pages in scheduled jobs #6

Closed jgylta closed 6 years ago

jgylta commented 6 years ago

In our solution we have multiple scheduled jobs which updates pages. After enabling the SiteImprove plugin these pages are no longer updated.

When a page is saved, the plugin, in SiteimproveHelper.GetExternalUrl, makes a call to UriSupport.AbsoluteUrlBySettingswhich fails because SiteDefinition.Current.SiteUrlis null. I assume this is because no http context is available.

System.NullReferenceException: Object reference not set to an instance of an object. at EPiServer.UriSupport.AbsoluteUrlBySettings(String path) at SiteImprove.EPiserver.Plugin.SiteimproveHelper.GetExternalUrl(PageData page) at SiteImprove.EPiserver.Plugin.EventModule.ContentEvents_PublishedContent(Object sender, ContentEventArgs e) at System.EventHandler`1.Invoke(Object sender, TEventArgs e) at EPiServer.Core.Internal.DefaultContentEvents.RaiseContentEvent(String key, ContentEventArgs eventArgs) at EPiServer.Core.Internal.DefaultContentRepository.RaisePostSaveEvents(SaveContentEventArgs eventArgs, StatusTransition transition, Boolean isNew, Boolean isNewLanguageBranch) at EPiServer.Core.Internal.DefaultContentRepository.Save(IContent content, SaveAction action, AccessLevel access)

CasperTDK commented 6 years ago

Thanks! This is a common issue with scheduled jobs and SiteDefinition.Current. A common fix is adding a * binding to your Sites setup. However, our solution can now handle the issue by skipping recheck if externalurl fails

CasperTDK commented 6 years ago

Please await SiteImprove.EPiServer.Plugin.2.2.1 on nuget.http://nuget.episerver.com/ We are awaiting approval