ASP.net - 虚拟路径'/Master.master'映射到另一个应用程序,这是不允许的

时间:2012-09-04 20:53:58

标签: asp.net master-pages virtual-path

我有一个位于我网站根目录下的asp.net母版页。我在母版页的目录“/ myfolder”中有一个页面:

 <%@ Page Title="" Language="C#" MasterPageFile="../Master.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="myproject.TimelapseDefault" %>
 <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
 <p>

文件如下:

/Master.master /myfolder/default.aspx

当我将它上传到我的(非专用的godaddy iis 7)服务器时,为什么会出现此错误,但它适用于localhost?:  分析器错误 说明:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并适当修改源文件。

分析程序错误消息:文件'/timelapserpro/Master.master'不存在。

来源错误:

第1行:<%@ Page Title="" Language="C#" MasterPageFile="~/Master.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="myproject.TimelapseDefault" %>

第2行:<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
第3行:<p>

所有页面都在同一个解决方案中。

2 个答案:

答案 0 :(得分:4)

尝试将MasterPageFile="../Master.master"更改为MasterPageFile="~/Master.master"

同时检查您是否在iis 7上正确创建了虚拟文件夹。检查您的应用的路径是否正确。您必须在IIS中具有此类文件夹结构

->YourAppName (the root of your app contains your root files)
  ->myfolder (contains your myfolder content)

答案 1 :(得分:3)

您的远程服务器没有将该文件夹设置为Web应用程序,因此当您使用“〜”引用它时,它会查找恰好是服务器根目录的应用程序的根目录。

但是,在本地计算机上,'/ timelapserpro / is a full application so ~/ refers to '/timelapserpro,而不是'/'。

您需要在本地服务器上降级您的应用程序,使其不再是自己的应用程序,或者将目标服务器文件夹升级为应用程序以使两者同步。