布署预编译的网站出现的冲突

很多人的网站都有一个login.aspx,在开发的时候,它好像一切都正常,没有什么问题。但是从开发转到预编译布署的时候,可能会出现下面的错误:

Cannot convert type 'ASP.login_aspx' to 'System.Web.UI.WebControls.Login'

 

原因应该是页面的名称为Login,而因为ASP.NET页面默认是没有namespace的,于是IIS在编译的时候,就会认为它是System.Web.UI.WebControls.Login这个控件,从而导致命名冲突。简单地改名也可以,不过很难预测什么页面会出现重名(比如 content也会出现重名~~),所以最好的解决方法是在每个页面前面都加一个namespace。

比如对Login.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="MyNamespace.Login" Title="User Login" %>

然后在Login.aspx.cs中:

namespace MyNamespace{

    public partial class Login : System.Web.UI.Page{ ...}

}

 

这样就可以了。其实更好的是,添加namespace应该成为VS开发ASP.NET时的一个默认选择。

你可能感兴趣的:(布署预编译的网站出现的冲突)