Hi Nalin,
You can check the "Link Status" report. I think this report will give some context.
Hi Ravindra & Praful,
I try to run the Link Validation job before running the report, but job response given me as 'This operation is not supported for a relative URI.' When I investigate this response, I found a below SQL query that I can used to get the report data. As per the extracted data, I could find a way to fix the issue what I mentioned above.
SELECT *FROM tblContentSoftlinkWHERE (LinkURL NOT LIKE '%~/link%') AND (LinkURL NOT LIKE '%http%') AND (LinkURL NOT LIKE '%https%') AND (LinkURL NOT LIKE '%mailto%')
Please let me know how to fix this issue - The file '/link/43F936C99B234EA397B261C538AD07C9.aspx' does not exist.
Thank you.
Nalin
Configure the link validation job to search internal urls. Follow this link
And see if you find the source of this broken link.
Use setting internalLinkValidation to configure it for internal links.
Hi Praful,
I added linkValidator as below, but when I execute the Link Validation job response gave me as 'This operation is not supported for a relative URI.' and status of job is Failed
<episerver>
<linkValidator externalLinkErrorThreshold="10"
maximumRunTime="4:00:00"
recheckInterval="30.00:00:00"
userAgent="EPiServer LinkValidator"
proxyAddress=""
proxyUser=""
proxyPassword=""
proxyDomain=""
internalLinkValidation="Api">
<excludePatterns>
<add regex=".*doc"/>
<add regex=".*pdf"/>
</excludePatterns>
</linkValidator>
</episerver>
And in the log, I can see this error
2019-10-10 16:52:33,713 [18] ERROR EPiServer.DataAbstraction.ScheduledJob: Job EPiServer.LinkAnalyzer.LinkValidationJob failed for the job 'Link Validation' with jobId ='6bce1827-f306-476a-b766-2b35838f6ea0'
System.InvalidOperationException: This operation is not supported for a relative URI.
at System.Uri.get_Scheme()
at EPiServer.LinkAnalyzer.Internal.LinkValidator.ValidateHttpLink(Uri url)
at EPiServer.LinkAnalyzer.Internal.LinkValidationRunner.ValidateLink(Uri url)
at EPiServer.LinkAnalyzer.Internal.LinkValidationRunner.CheckAndUpdateStatus(SoftLink link)
at EPiServer.LinkAnalyzer.Internal.LinkValidationRunner.CheckAndUpdateStatus(IEnumerable`1 softLinks)
at EPiServer.LinkAnalyzer.Internal.LinkValidationRunner.ValidateLinks()
at EPiServer.LinkAnalyzer.LinkValidationJob.Execute()
at EPiServer.Scheduler.Internal.DefaultScheduledJobExecutor.<Execute>d__31.MoveNext()
System.InvalidOperationException: This operation is not supported for a relative URI.
at System.Uri.get_Scheme()
at EPiServer.LinkAnalyzer.Internal.LinkValidator.ValidateHttpLink(Uri url)
at EPiServer.LinkAnalyzer.Internal.LinkValidationRunner.ValidateLink(Uri url)
at EPiServer.LinkAnalyzer.Internal.LinkValidationRunner.CheckAndUpdateStatus(SoftLink link)
at EPiServer.LinkAnalyzer.Internal.LinkValidationRunner.CheckAndUpdateStatus(IEnumerable`1 softLinks)
at EPiServer.LinkAnalyzer.Internal.LinkValidationRunner.ValidateLinks()
at EPiServer.LinkAnalyzer.LinkValidationJob.Execute()
at EPiServer.Scheduler.Internal.DefaultScheduledJobExecutor.<Execute>d__31.MoveNext()
Can you please let me know, where I gone wrong?
Thank you.
Nalin
Are you using multiple variants of templates for rendering the content? Like - Small device, Medium device, etc..
If yes then you can refer http://www.benramey.com/2014/03/27/episerver-7-the-file-linkguid-aspx-does-not-exist-error/
Try to also log the Request.Url. In our case it was the Container Pages (an empty PageModel). If you try to open the link that leads to them, the same exception occurs. So the user must have tried to go from /selfmanagement/login/ to /selfmanagement/ which is a Container Page...
You can also find out which exactly page is being called. Here is the SQL Script for this (look at URLSegment):
SELECT TWC.pkID, ChangedByName, TWC.URLSegment, LinkURL, Created, Saved, LB.Name as LanguageBranchName, Status as Status4Published2Draft
FROM [dbo].[tblWorkContent] TWC
INNER JOIN [dbo].tblLanguageBranch LB ON TWC.fkLanguageBranchID = LB.pkID
where LinkURL like '%43F936C99B234EA397B261C538AD07C9%'
order by Saved desc
The solution was to create a ContainerPageController for the custom PageModel. It was missing.
System.Web.HttpException (0x80004005): The file '/link/43F936C99B234EA397B261C538AD07C9.aspx' does not exist. at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) at System.Web.Routing.PageRouteHandler.GetHttpHandler(RequestContext requestContext) at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.<>c__DisplayClass285_0.<ExecuteStepImpl>b__0() at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Awaiting your valuable response.
Thank you.
Nalin