网站发布常见问题(一)发布的时候分析器错误信息: 文件“/MasterPage.master”不存在。

时间:2021-12-13 16:23:17

在用visual studio 20010发布网站的时候,建了一个MasterPage.master母板页,放在根目录下,然后,我添加新项,WEB窗体(DEFAULT.ASPX)并选中应用母板页.

成功添加后,我在VS2005的调试中,通过,并得到预期结果:(地址栏:http;//localhost:端口号/目录/Default.aspx)

然后我打开新的IE,地址栏输入:http;//localhost/目录/Default.aspx

“/”应用程序中的服务器错误。
------------------------------------------------------------------
分析器错误
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
分析器错误信息: 文件“/MasterPage.master”不存在。

原因是:你在使用母版页的时候,<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
"~/MasterPage.master" 表示的的是应用程序(IIS网站或虚拟目录)的根目录,如果你把需要旋转的网站文件放在一个没有建立虚拟目录的普通目录,MasterPage.master页面就不在应用程序(虚拟目录)的根目录下,页面请求的时候,当然找不到MasterPage.master了。
解决方法:

1、首先建立虚拟目录,指向你的需要上传的网站文件夹内的目录,记住~/是表示当前应用的根目录,不是整个IIS站点的根目录。

极端的2种作法,如果分不清~是表示网站根目录还是应用程序的根目录,(,~实际上表示的是IIS中应用程序的根目录)就让他们一致。
2、可以将整个网站的内容发布到默认网站下,直接将就要发布的网站作为默认网站。就可以找到MasterPage.master这个文件了。用http://localhost/ 就可以访问了。当然。要在默认文档里面把Default.aspx设置到靠前。
3、新建一个网站,端口号可以设置成其它,比如8080.也可以解决。用http:////localhost/:8080 就可以访问了。

4、使用VS中的打包部署功能,将整个网站打包,制作成一个安装包,然后再在本地机子上安装的时候,指定虚拟目录为IIS的目录下。这个方法百分百管用。