错误:“文件'/MasterPages/MainMaster.master'不存在。” (是的,这个文件确实存在!)

时间:2010-09-29 20:16:44

标签: asp.net master-pages

我刚买了一台装有Windows 7 Pro作为操作系统的新台式电脑。我将Visual Studio 2008安装到这台新计算机上,并尝试打开以前存在的ASP.NET 3.5解决方案,该解决方案在我以前的计算机上显示得非常好(以前的计算机使用的是Windows XP操作系统,IIS6和IE7浏览器)。但是,在Windows7 / IE8中,我收到以下错误:

  '/'应用程序中的服务器错误。

     
     

分析程序错误说明:错误   解析期间发生的   为此提供服务所需的资源   请求。请查看以下内容   具体的解析错误细节和   适当修改你的源文件。

     

分析程序错误消息:该文件   '/MasterPages/MainMaster.master'不存在。

     

来源错误:

     

第1行:<%@ Page Language =“C#”   AutoEventWireup = “真”   的CodeFile = “default.aspx.cs”   继承=“_默认”   的MasterPageFile = “〜/ MasterPages / MainMaster.master” %>   第2行:
  第3行:<%@ Register TagPrefix =“SBLContent”TagName =“SBLContentBlock”   SRC = “用户控件/ content.ascx” %>

     

源文件:/SBLWebSite/default.aspx   行:1

     
     

版本信息:Microsoft .NET   框架版本:2.0.50727.4952;   ASP.NET版本:2.0.50727.4927

当我告诉你文件'/MasterPages/MainMaster.master'文件确实存在时,请相信我。

此外,该文件的位置在代码中正确引用(如上面第1行所示),正如我所说,浏览器在我以前的计算机中正确显示。注意我尝试导航到此站点中的其他页面也可能会有所帮助,此浏览器会为位于我的MasterPages文件夹中的任何和所有母版页显示相同的消息。

总之,由于某种原因,浏览器无法在MasterPages文件夹中看到任何页面。当文件夹和文件正是default.aspx所说的那样时,有人能告诉我为什么我收到此错误消息?

提前致谢!

8 个答案:

答案 0 :(得分:9)

感谢您的回复。

然而,这个问题原来是一个IIS7问题。我描述的错误消息源于IIS7在“虚拟目录”和“应用程序”之间的区别(我不知道IIS6中是否存在这种区别)。要修复此错误,我打开IIS7,右键单击此站点的虚拟目录文件夹,然后选择“转换为应用程序”。然后我刷新了浏览器,错误就消失了。

叹息。

答案 1 :(得分:1)

要检查两件事:

  1. 在文件路径中使用“〜”时,请确保当前应用程序部署认为根目录与以前相同。 (我有时会从VS Development Server和IIS中移动一个应用程序。)

  2. 确保运行服务器的用户帐户具有访问该目录的权限。由于您刚刚将代码从另一台计算机和某些中间存储设备上移了过来,因此安全权限可能不正确。

答案 2 :(得分:0)

而不是“〜”我只是简单地将目录更改为相对“...”所以,我原来的那个给我带来问题的是:“〜/ MasterPage / TheMainMasterPage.master”这个导致我得到相同的错误消息。将其更改为“../MasterPage/TheMainMasterPage.master”为我修复了一切。

答案 3 :(得分:0)

我最近不得不将我的网站从一台服务器(32位)移动到另一台服务器(64位)。在新服务器上我遇到了文件未找到错误“解析器错误消息:文件'〜/ Master.master'不存在”

注意:我的一些应用程序是为x86构建的,您仍然需要将您的网站转换为应用程序: - )

解决方案: 在IIS8中,单击“应用程序池” - >选择一个应用程序池,例如DefaultAppPool - >点击“高级设置” - >在“常规”部分下,将“启用32位应用程序”设置为“True” - >单击“确定”

刷新您的网站/网络服务,这应该可以解决问题

答案 4 :(得分:0)

enter image description here

错误来自网页表单

  

<%@ Page Title =“”Language =“vb”AutoEventWireup =“false”   MasterPageFile = “〜/ Site1.Master” CodeBehind =“add_drivers.aspx.vb”   Inherits =“au_transport.WebForm1”%>

<强>校正

  

&lt;%@ Page Title =“”Language =“vb”AutoEventWireup =“false”   MasterPageFile = “Site1.Master” CodeBehind =“add_drivers.aspx.vb”   Inherits =“au_transport.WebForm1”%&gt;

答案 5 :(得分:0)

先前的代码:-

<%@ Page Title="" Language="C#" MasterPageFile="~/admin.Master" AutoEventWireup="true" CodeBehind="outgoingform.aspx.cs" Inherits="OCS.outgoingform" %>

代码更改后:-

<%@ Page Title="" Language="C#" MasterPageFile="../ocs/admin.Master" AutoEventWireup="true" CodeBehind="outgoingform.aspx.cs" Inherits="OCS.outgoingform" %>

将代码从"~/admin.Master"更改为"~/ocs/admin.Master"

答案 6 :(得分:0)

先前的代码:-

代码更改后:-

将代码从“〜/ admin.Master”更改为“ 〜/ ocs / admin.Master

答案 7 :(得分:0)

好的,这是旧的,现在是 2021 年,但是,您的母版页面的路径具有 ~/site name/MasterPage.master 或类似内容。

我做了什么修复,因为我上传到服务器都在同一目录中,删除这个 ~/site name/ 保留母版页的名称 IE: MasterPage.master 一切都很好。确保母版页与其他页面位于同一目录中。完成。

我编辑后的内容...

<%@ Page Title="" Language="VB" MasterPageFile="MasterPage.master" 

对所有页面执行此操作

没有站点名称或 ~/ 等。多么痛苦,但是一旦您意识到这只是一个目录问题,回想起来从一开始就应该很明显……现在一切都好了。网站启动。