程序在VS中运行正常,但发布后出现如下提示。
“/”应用程序中的服务器错误。
分析器错误
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
分析器错误信息: 基类包括字段“SuperMarket1”,但其类型(Supermarket_SuperMarket)与控件(ASP.supermarket_supermarket_ascx)的类型不兼容。
源错误:
行 27: </div>
行 28: <div id="main_sideColumn">
行 29: <uc1:SuperMarket ID="SuperMarket1" runat="server" />
行 30: <uc2:LeaguelShop ID="LeaguelShop1" runat="server" />
行 31: </div>
源文件: /Supermarket/default.aspx 行: 29
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
进过判断,发现原因。
因为在同一个目录Supermarket下,已经有了Supermarket.aspx这个页面,但又添加了Supermarket.ascx用户控件。
在编译前,页面文件和用户控件的cs文件是独立存在的,因此没问题。
编译后cs文件全部打包进dll,两个cs文件的命名空间都是Supermarket_Supermarket,产生了冲突,因此出现了上面这个错误。
将Supermarket.ascx控件改名后,问题解决。
PS:今天我算遇到这个问题了,它就是因为这 个网站里面一个ASPX,与ASCX的命名空间名是一样的去了,所以就会产生这样的错,在开发时,会不出错,因为是分开一个一个的CS,也指向不同的 public partial class edit : System.Web.UI.Page,public partial class edit : System.Web.UI.UserControl,“edit”这个命名空间相同了,开发是因为是分成两个CS,但发布的时候,他们都会被封装到 DLL里面,就形成了是相同的命名空间:edit,会使得网站报错的。所以把其中一个改成另外一个唯一的命名空间就可以了。如把ASCX的命名空间改了:
public partial class newshow : System.Web.UI.UserControl ,页面里的HTML代码也要改一处:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="newshow.ascx.cs" Inherits="newshow" %> :inherits要改成和命名空间一样的名字。。