程序在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要改成和命名空間一樣的名字。。