母版页"不存在"

时间:2014-06-04 09:48:56

标签: c# asp.net

我有一个ASP.NET Web表单应用程序。我已经执行了预编译的构建并将文件加载到我的服务器上。但是,应用程序会将此错误抛出到浏览器:

  

文件'/myapp.master'不存在。

这个错误令我感到困惑。由于我已经执行了预编译的构建,我希望母版页的代码只能作为bin文件夹中的编译代码存在。但它似乎在寻找一个物理文件?为什么会这样?

我的母版页中的第一行如下:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="myapp.master.cs" Inherits="PresentationLayer_myapp" %>

如果您之前遇到此错误,为您修复了哪些错误?

2 个答案:

答案 0 :(得分:3)

您需要确保虚拟目录是一个应用程序 - 而不仅仅是一个虚拟目录。在IIS中,右键单击虚拟目录并选择“转换为应用程序”。

答案 1 :(得分:0)

主页面上出现此错误并不是真正的问题。

由于错误报告了Master页面不存在的问题,因此在通过VS2010发布网站时,我选择了“允许此预编译站点可更新”选项&#39;。我知道这个选项会产生一个ASPX Master页面,而如果我没有选择它,那么ASPX将被预编译并且只作为编译代码存在于/ bin文件夹中。

因此,当部署应用程序时,在尝试访问应用程序时,它不再报告Master页面的问题,它现在报告了我的DLL之一的BadImageFormatException。 通过将解决方案平台设置为x86(在此之前将所有项目设置为&#39;任何CPU&#39;)来修复此错误。为此,请转到Visual Studio中的工具栏,然后单击“构建” - >“生成”。 Configuration Manager,您可以从中修改解决方案中每个项目的平台设置。

一旦我这样做了,这次我就能够发布一个完全预编译的版本,并且它不再报告Master页面有任何问题。

我还不确定为什么它事先报告了Master页面的错误,但是我怀疑DLL的问题可能导致编译的代码搞砸了,因为Master页面是在向网站的主页发出请求时首先要加载的是,这是错误页面上提到的这个页面。