我目前正在azure上部署我的网站。我的一个页面工作正常,但我有另一个使用母版页面的页面,因为我收到此错误而未加载:
Server Error in '/' Application.
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: The file '/Main.master.cs' does not exist.
Source Error:
Line 1: <%@ Master Language="C#" AutoEventWireup="true" CodeFile="Main.master.cs" Inherits="ThirdEye.Main" %>
Line 2:
Line 3: <%@ Register Src="~/controls/Footer.ascx" TagName="Footer" TagPrefix="ThirdEye" %>
Source File: /Main.master Line: 1
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272
我无法弄清楚我的错误。我已经上传了可执行文件,这些页面都在bin文件夹的同一目录下。你认为我必须在CodeFile属性或Inherits属性前面添加句点或代字号吗?
我正在使用.net framework v4。我不能使用3.5,我不认为这应该是问题。
Main.Master
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Main.master.cs" Inherits="Main" %>
Main.Master.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using ThirdEye;
public partial class Main : System.Web.UI.MasterPage
{....
答案 0 :(得分:15)
您使用的是Web应用程序项目(而不是Web站点项目)吗?如果是这样,将CodeFile
更改为CodeBehind
可以解决错误。
编译Web应用程序部署,并且不包括使用CodeFile
时所需的原始cs文件。
答案 1 :(得分:3)
基于上面的错误,似乎MainMaster.master.cs未部署到Windows Azure。
在项目中添加新的母版页名称“MainMaster.master”时,是否将其属性设置为“复制到输出目录”为“始终复制”,因为默认情况下它未设置,因此此文件将不会成为您的Windows Azure包的一部分,并导致此类错误。
请您验证是否是这种情况?
答案 2 :(得分:3)
要确保在部署到Azure时包含代码文件(* .cs),请转到项目属性,然后在PACKAGE / Publish Web下选择“此项目文件夹中的所有文件”,以选择要部署的项目(适用)到所有部署方法)
答案 3 :(得分:0)
答案是你永远不应该命名一个页面'Main'!非常愚蠢的错误!
答案 4 :(得分:0)
我以前也遇到过同样的问题。有两个解决方案。
如@Eric所述,在主文件中使用CodeBehind
而不是CodeFile
。
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Main.master.cs" Inherits="ThirdEye.Main" %>
将cs文件复制到部署;在这种情况下,请复制IIS中“ App_Master”文件夹中的“ Main.master.cs”。通常,部署cs
文件时不会包括在内。