Getting file does not exists error

Vote:
 
Hi All,
We are getting quite few exceptions in AppInsight as below when we browse the site. Could I know why this is happening and how to fix this issue? And is there any way to find what is the actual page this error belongs in Epi Server site?
Exception type: System.Web.HttpException
Exception message: The file '/link/43F936C99B234EA397B261C538AD07C9.aspx' does not exist.

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

#207939
Oct 09, 2019 6:24
Vote:
 

Hi Nalin,

You can check the "Link Status" report. I think this report will give some context.

#207948
Oct 09, 2019 10:06
Vote:
 

Thanks Ravindra,

I want to add something, before you run that report, you need to run this scheduled job first.

You can read about this job here

#207950
Oct 09, 2019 10:10
Vote:
 

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

#207995
Edited, Oct 10, 2019 2:40
Vote:
 

Configure the link validation job to search internal urls. Follow this link

https://world.episerver.com/documentation/developer-guides/CMS/configuration/Configuring-link-validation/

And see if you find the source of this broken link.

Use setting internalLinkValidation to configure it for internal links.

#207997
Oct 10, 2019 5:28
Vote:
 

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

#207998
Oct 10, 2019 5:59
Vote:
 

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/

#208001
Oct 10, 2019 8:12
VK
Vote:
 

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.

#279310
Edited, Apr 27, 2022 10:05
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.