【问题标题】:ASP.NET ERR: Master Page does not existASP.NET ERR:母版页不存在
【发布时间】:2015-07-30 21:06:38
【问题描述】:

在我的 asp.net Web 应用程序中,我有三层,例如 PresentationLayer、BussinessLogicLayer 和 DataAccessLayer。我在应用根目录下有master.master、login.aspx和Default.aspx文件。

在表示层中,我有一个名为 Tracking.aspx 的网页。我已将母版页包含在页面目录中,如下所示:

<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Master.Master" CodeBehind="Tracking.aspx.cs" Inherits="mysite.PresentationLayer.Tracking" Title="Tracking" %>

在本地系统中构建和运行应用程序时,它工作正常。在IIS 7.5 中托管后,当我单击页面 Tracking.aspx 时,它会引发以下错误;

文件“/mysite/PresentationLayer/Master.Master”不存在。

我也在 Default.aspx 中包含了母版页。但它在 IIS 中运行良好。

我知道问题在于在 masterpagefile 属性中提供母版页。但是不知道怎么给。如何解决这个问题?

【问题讨论】:

  • Default.aspx 是否与Tracking.aspx 在同一文件夹中?
  • 没有。它位于应用程序根目录中,就像母版页一样。

标签: asp.net visual-studio-2012 iis-7.5 master-pages


【解决方案1】:

这个这个:

<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="../Master.Master" CodeBehind="Tracking.aspx.cs" Inherits="mysite.PresentationLayer.Tracking" Title="Tracking" %>

IIS 正在与您的页面相同的目录中查找主文件,因为这是您的旧 masterpagefile 属性告诉它要做的事情。上面的代码应该让它上升到文件树的上一层,然后查找它。

【讨论】:

  • 指定母版页的相对路径可能不是一个好主意。路径应该是相对于根目录的。
  • 是的。我试过这样。但它给出了错误“虚拟路径'/mysite/Master.Master'映射到另一个应用程序,这是不允许的。”
  • @mason 是的,这是一个非常糟糕的想法,但是这种东西对于调试很有用。
  • 在这种情况下,您应该将其发布为评论而不是答案。
  • 我宁愿从调试步骤开始,然后在问题解决后对其进行编辑。这样,未来的观众会看到这个过程并学到比答案更多的东西——他们会了解调试是如何进行的。
猜你喜欢
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多