asp.net deploy - 找不到Main.Master.cs文件

时间:2012-05-03 18:35:55

标签: c# asp.net azure

我目前正在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
    {....

5 个答案:

答案 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)

我以前也遇到过同样的问题。有两个解决方案。

  1. 如@Eric所述,在主文件中使用CodeBehind而不是CodeFile

    <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Main.master.cs" Inherits="ThirdEye.Main" %>
    
  2. 将cs文件复制到部署;在这种情况下,请复制IIS中“ App_Master”文件夹中的“ Main.master.cs”。通常,部署cs文件时不会包括在内。