【问题标题】:ASP.NET Master Page Parse ErrorASP.NET 母版页解析错误
【发布时间】:2011-11-19 08:20:13
【问题描述】:

我有一个 Visual Studio 2010 项目,其母版页运行良好。

~/Site.Master

在同一个项目中有一个文件夹具有另一个目录结构,需要使用另一个母版页。

/xr

在这个文件夹中,我已经包含了这些文件的母版页。

/xr/XR.Master

我的Default.aspx 文件尝试使用以下包括访问此母版页:

<%@ Page Title="XR Project" Language="C#" MasterPageFile="~/xr/XR.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Test1.Default" %>

在我的机器上调试 localhost 工作正常,但每当我部署它并尝试导航到 xr 文件夹中的默认页面时,我都会得到

解析器错误消息: The file '/xr/xr/XR.Master' does not exist.

但是,Source Error 返回第 1 行,如上所示。

这是我尝试过的:

  • 我将XR.Master 页面移动到根文件夹并更改了xr 文件夹中的所有文件以使用以下包括引用XR 母版页:

  • 我使用localhost在我的机器上调试和测试了代码,它运行良好。

  • 我将其推送到远程网站并收到新错误:

解析器错误消息: The file '/xr/~/XR.Master' does not exist.

我做错了什么?

编辑:我不喜欢发布指向该页面的链接,但我会在短时间内解决此问题:

从那里,您会看到除了XR1200 的链接之外,一切都运行良好。

【问题讨论】:

  • 这看起来很奇怪...您是否尝试过在发布之前清除要发布到的文件夹的全部内容?
  • 不,我没有。已经有一些文件(备份、音频文件等)我不想删除。
  • subfolder母版页应该位于root文件夹还是content页面所在的文件夹中?

标签: c# asp.net visual-studio-2010 master-pages


【解决方案1】:

这是我可以给你的最好建议,而无需对你的项目结构了解太多。 我希望您使用的是 VS2010,以便您在我的机器上看起来一样。 获取母版页路径的一种简单方法是从母版文件中添加一个测试网页,该路径将为您预设,您可以在现有页面中使用它。

  • 这是我的博客项目结构。 右键单击要添加测试页的文件夹,然后单击添加新文件。

  • 使用母版页添加新的 Web 表单。这只是为了测试。

  • 现在找到您的母版页并选择它。

  • 从这里只需在您的解决方案结构中找到您新添加的内容页面,然后检查您的母版页路径的代码文件。

  • 一旦你验证了你的路径是正确的,如果你发布它后它仍然会爆炸,那么你就会遇到一个问题,即不是所有项目都在正确构建,或者你的文件不是t 被正确上传,这最终将成为您可能只需要自己找到的东西。我仍然建议您删除服务器上 pub 文件夹中的任何内容并尝试干净发布。

希望这会有所帮助!

【讨论】:

  • 老鼠。现在是星期六,项目正在进行中。不过,我首先要检查一下!
  • 好的,这个有效:jp2code.net/Dylan.aspx,这个(在xr文件夹内)无效:jp2code.net/xr/DylanXR.aspx
  • 这两个文件具有完全相同的内容,并以完全相同的方式创建,如上述步骤所述。第一个,我右键单击根文件夹并使用母版页添加一个新的 Web 表单,并指向 xr 文件夹中的母版页。第二个。我右键单击 xr 文件夹本身以添加新的 Web 表单并将其指向同一 xr 文件夹中的同一母版页。 ???
  • 您仍然在新创建的测试页面上遇到解析错误?
  • 很好,很高兴你让它工作了,我的解决方案主要是排除这是一个代码问题,我们现在看到它确实是服务器的问题
【解决方案2】:

我的猜测是不同机器上的 iis 设置不同。通常,当您将一台机器设置为网站本身作为网站,而另一台机器将网站本身设置为网站内的应用程序(如默认网站)时,您会看到类似的内容。看起来您已经通过在路径中使用 ~ 来解决这种可能性,但是您正在部署的 iis 可能没有将站点目录本身设置为网站或应用程序,而只是站点的子目录.在这种情况下,~ 将引用网站目录(可能名为 xr?),并且该站点位于名为 xr 的子目录中。如果是这种情况,解决方案可能是设置 iis,以便将应用程序目录配置为要部署到的服务器上的应用程序。

【讨论】:

  • 哦!可能就是这样!我认为我没有将xr 文件夹配置为 IIS 文件夹!让我去看看……
  • 不,不是这样。显然,我前段时间在该文件夹上设置了 IIS 权限。 :(
  • 无赖。我真的以为就是这样。那么两台机器上的 iis 配置是否相同,还是有一些差异?
  • 远程托管意味着您使用的是共享托管服务提供商?很难知道他们是如何设置 iis 的。你在他们那里的账户叫xr吗?看起来路径中有一个额外的 xr。似乎他们正在考虑您的站点 xr,它是站点的子目录而不是应用程序。您也许可以使您的本地站点只是一个子目录而不是应用程序,然后相应地指向您的母版页。如果你可以让它在你的本地工作,它可能会在共享主机上工作。
  • 甜蜜。尝试正确配置所有内容可能会很痛苦。赞成 dylan 为深入研究而做出的所有努力。
猜你喜欢
  • 2014-03-20
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多