Bolik‘s AIO Blog
All In One Team Blog

asp代码如下:

<%@ Page Language="C#" MasterPageFile="~/DefaultMaster.master" AutoEventWireup="true" EnableEventValidation="false" CodeFile="Login.aspx.cs" Inherits="Login" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="mainContentPlaceholder" runat="Server">
<asp:Login ID="LoginMain" runat="server" CreateUserText="<%$ Resources:GResource, CreateUser %>" CreateUserUrl="User/CreateUser.aspx" LoginButtonImageUrl="Images/Login.gif" OnLoggedIn="LoginMain_LoggedIn" PasswordRecoveryText="<%$ Resources:GResource, ForgottenPassword %>" PasswordRecoveryUrl="User/EMailForgottenPassword.aspx" RememberMeSet="True">
</asp:Login>
</asp:Content>
请注意 Inherits="Login" asp:Login 当我们在开发阶段使用时是不会有问题的,但是一旦将该页面预编译则会发生错误

 

错误代码如下:

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0030: Cannot convert type 'ASP.login_aspx' to 'System.Web.UI.WebControls.Login'
源错误:
行 118:        public login_aspx() {
行 119:            string[] dependencies;
行 120:            ((Login)(this)).AppRelativeVirtualPath = "~/Login.aspx";
行 121:            if ((global::ASP.login_aspx.@__initialized == false)) {
行 122:                dependencies = new string[5];
源文件: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\App_Web_login.aspx.cdcab7d2.mnld6pv-.0.cs    行: 120
编译器警告消息:
警告: CS0108: 'ASP.login_aspx.Profile' hides inherited member 'Login.Profile'. Use the new keyword if hiding was intended.
源错误:
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\App_Web_login.aspx.cdcab7d2.mnld6pv-.0.cs
行 132:        }
行 133:        
行 134:        protected System.Web.Profile.DefaultProfile Profile {
行 135:            get {
行 136:                return ((System.Web.Profile.DefaultProfile)(this.Context.Profile));
警告: CS0108: 'ASP.login_aspx.ApplicationInstance' hides inherited member 'Login.ApplicationInstance'. Use the new keyword if hiding was intended.
源错误:
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\App_Web_login.aspx.cdcab7d2.mnld6pv-.0.cs
行 138:        }
行 139:        
行 140:        protected System.Web.HttpApplication ApplicationInstance {
行 141:            get {
行 142:                return ((System.Web.HttpApplication)(this.Context.ApplicationInstance));
显示详细的编译器输出:
c:\windows\system32\inetsrv> "C:\Program Files\LINQ Preview\Bin\csc.exe" /noconfig /fullpaths @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\wa1twmhp.cmdline"
Microsoft (R) Visual C# 2005 Compiler version 8.00.50916
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\App_Web_login.aspx.cdcab7d2.mnld6pv-.0.cs(134,53): warning CS0108: 'ASP.login_aspx.Profile' hides inherited member 'Login.Profile'. Use the new keyword if hiding was intended.
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\assembly\dl3\84cfb6d2\306c3f3e_cfe1c601\WITWeb_Deploy.DLL: (Location of symbol related to previous warning)
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\App_Web_login.aspx.cdcab7d2.mnld6pv-.0.cs(140,46): warning CS0108: 'ASP.login_aspx.ApplicationInstance' hides inherited member 'Login.ApplicationInstance'. Use the new keyword if hiding was intended.
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\assembly\dl3\84cfb6d2\306c3f3e_cfe1c601\WITWeb_Deploy.DLL: (Location of symbol related to previous warning)
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\188f28c7\60ce8620\App_Web_login.aspx.cdcab7d2.mnld6pv-.0.cs(120,14): error CS0030: Cannot convert type 'ASP.login_aspx' to 'System.Web.UI.WebControls.Login'
显示完整的编译源:
行 1:    #pragma checksum "C:\WIT\WITWeb\Login.aspx" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "B44F354557695C8AD78BB899D68B71B5"
行 2:    //------------------------------------------------------------------------------
行 3:    // <auto-generated>
行 4:    //     This code was generated by a tool.
行 5:    //     Runtime Version:2.0.50727.42
行 6:    //
行 7:    //     Changes to this file may cause incorrect behavior and will be lost if
行 8:    //     the code is regenerated.
行 9:    // </auto-generated>
行 10: //------------------------------------------------------------------------------
行 11:
行 12: namespace ASP {
行 13:    
行 14:     #line 319 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 15:     using System.Web.Security;
行 16:    
行 17:     #line default
行 18:     #line hidden
行 19:    
行 20:     #line 316 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 21:     using System.Web;
行 22:    
行 23:     #line default
行 24:     #line hidden
行 25:    
行 26:     #line 318 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 27:     using System.Web.SessionState;
行 28:    
行 29:     #line default
行 30:     #line hidden
行 31:    
行 32:     #line 314 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 33:     using System.Text;
行 34:    
行 35:     #line default
行 36:     #line hidden
行 37:    
行 38:     #line 3 "C:\WIT\WITWeb\Login.aspx"
行 39:     using System.Web.UI.WebControls;
行 40:    
行 41:     #line default
行 42:     #line hidden
行 43:    
行 44:     #line 320 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 45:     using System.Web.Profile;
行 46:    
行 47:     #line default
行 48:     #line hidden
行 49:    
行 50:     #line 311 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 51:     using System.Collections;
行 52:    
行 53:     #line default
行 54:     #line hidden
行 55:    
行 56:     #line 3 "C:\WIT\WITWeb\Login.aspx"
行 57:     using System.Web.UI.WebControls.WebParts;
行 58:    
行 59:     #line default
行 60:     #line hidden
行 61:    
行 62:     #line 313 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 63:     using System.Configuration;
行 64:    
行 65:     #line default
行 66:     #line hidden
行 67:    
行 68:     #line 310 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 69:     using System;
行 70:    
行 71:     #line default
行 72:     #line hidden
行 73:    
行 74:     #line 1 "C:\WIT\WITWeb\Login.aspx"
行 75:     using ASP;
行 76:    
行 77:     #line default
行 78:     #line hidden
行 79:    
行 80:     #line 317 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 81:     using System.Web.Caching;
行 82:    
行 83:     #line default
行 84:     #line hidden
行 85:    
行 86:     #line 321 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 87:     using System.Web.UI;
行 88:    
行 89:     #line default
行 90:     #line hidden
行 91:    
行 92:     #line 312 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 93:     using System.Collections.Specialized;
行 94:    
行 95:     #line default
行 96:     #line hidden
行 97:    
行 98:     #line 315 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 99:     using System.Text.RegularExpressions;
行 100:    
行 101:     #line default
行 102:     #line hidden
行 103:    
行 104:     #line 324 "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
行 105:     using System.Web.UI.HtmlControls;
行 106:    
行 107:     #line default
行 108:     #line hidden
行 109:    
行 110:    
行 111:     [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
行 112:     public class login_aspx : global::Login, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler {
行 113:        
行 114:         private static bool @__initialized;
行 115:        
行 116:         private static object @__fileDependencies;
行 117:        
行 118:         public login_aspx() {
行 119:             string[] dependencies;
行 120:             ((Login)(this)).AppRelativeVirtualPath = "~/Login.aspx";
行 121:             if ((global::ASP.login_aspx.@__initialized == false)) {
行 122:                 dependencies = new string[5];
行 123:                 dependencies[0] = "~/Login.aspx";
行 124:                 dependencies[1] = "~/DefaultMaster.master";
行 125:                 dependencies[2] = "~/UserControls/CollapsibleContent.ascx";
行 126:                 dependencies[3] = "~/UserControls/HtmlEditorWrapper.ascx";
行 127:                 dependencies[4] = "~/UserControls/ProjectAreaTextBox.ascx";
行 128:                 global::ASP.login_aspx.@__fileDependencies = this.GetWrappedFileDependencies(dependencies);
行 129:                 global::ASP.login_aspx.@__initialized = true;
行 130:             }
行 131:             this.Server.ScriptTimeout = 30000000;
行 132:         }
行 133:        
行 134:         protected System.Web.Profile.DefaultProfile Profile {
行 135:             get {
行 136:                 return ((System.Web.Profile.DefaultProfile)(this.Context.Profile));
行 137:             }
行 138:         }
行 139:        
行 140:         protected System.Web.HttpApplication ApplicationInstance {
行 141:             get {
行 142:                 return ((System.Web.HttpApplication)(this.Context.ApplicationInstance));
行 143:             }
行 144:         }
行 145:        
行 146:         private global::System.Web.UI.WebControls.Login @__BuildControlLoginMain() {
行 147:             global::System.Web.UI.WebControls.Login @__ctrl;
行 148:            
行 149:             #line 6 "C:\WIT\WITWeb\Login.aspx"
行 150:             @__ctrl = new global::System.Web.UI.WebControls.Login();
行 151:            
行 152:             #line default
行 153:             #line hidden
行 154:             this.LoginMain = @__ctrl;
行 155:             @__ctrl.TemplateControl = this;
行 156:             @__ctrl.ApplyStyleSheetSkin(this);
行 157:            
行 158:             #line 6 "C:\WIT\WITWeb\Login.aspx"
行 159:             @__ctrl.ID = "LoginMain";
行 160:            
行 161:             #line default
行 162:             #line hidden
行 163:            
行 164:             #line 6 "C:\WIT\WITWeb\Login.aspx"
行 165:             @__ctrl.CreateUserUrl = "User/CreateUser.aspx";
行 166:            
行 167:             #line default
行 168:             #line hidden
行 169:            
行 170:             #line 6 "C:\WIT\WITWeb\Login.aspx"
行 171:             @__ctrl.LoginButtonImageUrl = "Images/Login.gif";
行 172:            
行 173:             #line default
行 174:             #line hidden
行 175:            
行 176:             #line 6 "C:\WIT\WITWeb\Login.aspx"
行 177:             @__ctrl.PasswordRecoveryUrl = "User/EMailForgottenPassword.aspx";
行 178:            
行 179:             #line default
行 180:             #line hidden
行 181:            
行 182:             #line 6 "C:\WIT\WITWeb\Login.aspx"
行 183:             @__ctrl.RememberMeSet = true;
行 184:            
行 185:             #line default
行 186:             #line hidden
行 187:             @__ctrl.CreateUserText = System.Convert.ToString(this.GetGlobalResourceObject("Resource", "CreateUser"), System.Globalization.CultureInfo.CurrentCulture);
行 188:             @__ctrl.PasswordRecoveryText = System.Convert.ToString(this.GetGlobalResourceObject("Resource", "ForgottenPassword"), System.Globalization.CultureInfo.CurrentCulture);
行 189:            
行 190:             #line 6 "C:\WIT\WITWeb\Login.aspx"
行 191:             @__ctrl.LoggedIn -= new System.EventHandler(this.LoginMain_LoggedIn);
行 192:            
行 193:             #line default
行 194:             #line hidden
行 195:            
行 196:             #line 6 "C:\WIT\WITWeb\Login.aspx"
行 197:             @__ctrl.LoggedIn += new System.EventHandler(this.LoginMain_LoggedIn);
行 198:            
行 199:             #line default
行 200:             #line hidden
行 201:             return @__ctrl;
行 202:         }
行 203:        
行 204:         private void @__BuildControlContent1(System.Web.UI.Control @__ctrl) {
行 205:             System.Web.UI.IParserAccessor @__parser = ((System.Web.UI.IParserAccessor)(@__ctrl));
行 206:            
行 207:             #line 3 "C:\WIT\WITWeb\Login.aspx"
行 208:             @__parser.AddParsedSubObject(new System.Web.UI.LiteralControl("\r\n \r\n "));
行 209:            
行 210:             #line default
行 211:             #line hidden
行 212:             global::System.Web.UI.WebControls.Login @__ctrl1;
行 213:            
行 214:             #line 3 "C:\WIT\WITWeb\Login.aspx"
行 215:             @__ctrl1 = this.@__BuildControlLoginMain();
行 216:            
行 217:             #line default
行 218:             #line hidden
行 219:            
行 220:             #line 3 "C:\WIT\WITWeb\Login.aspx"
行 221:             @__parser.AddParsedSubObject(@__ctrl1);
行 222:            
行 223:             #line default
行 224:             #line hidden
行 225:            
行 226:             #line 3 "C:\WIT\WITWeb\Login.aspx"
行 227:             @__parser.AddParsedSubObject(new System.Web.UI.LiteralControl("\r\n"));
行 228:            
行 229:             #line default
行 230:             #line hidden
行 231:         }
行 232:        
行 233:         private void @__BuildControlTree(login_aspx @__ctrl) {
行 234:            
行 235:             #line 1 "C:\WIT\WITWeb\Login.aspx"
行 236:             @__ctrl.MasterPageFile = "~/DefaultMaster.master";
行 237:            
行 238:             #line default
行 239:             #line hidden
行 240:            
行 241:             #line 1 "C:\WIT\WITWeb\Login.aspx"
行 242:             @__ctrl.EnableEventValidation = false;
行 243:            
行 244:             #line default
行 245:             #line hidden
行 246:            
行 247:             #line 1 "C:\WIT\WITWeb\Login.aspx"
行 248:             @__ctrl.Title = "Untitled Page";
行 249:            
行 250:             #line default
行 251:             #line hidden
行 252:            
行 253:             #line 1 "C:\WIT\WITWeb\Login.aspx"
行 254:             this.InitializeCulture();
行 255:            
行 256:             #line default
行 257:             #line hidden
行 258:            
行 259:             #line 3 "C:\WIT\WITWeb\Login.aspx"
行 260:             this.AddContentTemplate("mainContentPlaceholder", new System.Web.UI.CompiledTemplateBuilder(new System.Web.UI.BuildTemplateMethod(this.@__BuildControlContent1)));
行 261:            
行 262:             #line default
行 263:             #line hidden
行 264:             System.Web.UI.IParserAccessor @__parser = ((System.Web.UI.IParserAccessor)(@__ctrl));
行 265:            
行 266:             #line 1 "C:\WIT\WITWeb\Login.aspx"
行 267:             @__parser.AddParsedSubObject(new System.Web.UI.LiteralControl("\r\n"));
行 268:            
行 269:             #line default
行 270:             #line hidden
行 271:         }
行 272:        
行 273:         protected override void FrameworkInitialize() {
行 274:             base.FrameworkInitialize();
行 275:             this.@__BuildControlTree(this);
行 276:             this.AddWrappedFileDependencies(global::ASP.login_aspx.@__fileDependencies);
行 277:         }
行 278:        
行 279:         public override int GetTypeHashCode() {
行 280:             return 1734294563;
行 281:         }
行 282:        
行 283:         public override void ProcessRequest(System.Web.HttpContext context) {
行 284:             base.ProcessRequest(context);
行 285:         }
行 286:     }
行 287: }
行 288:
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.62

        我在这里找到了答案 其原因就是Inherits="Login" asp:Login 中的标记控件与页面基类名称相同,当我们在开发时编译与预编译不同造成

解决方法一是更改页面基类名程, 二是为页面基类增加命名空间 我采用的是增加命名空间的解决方法代码如下:

 

<%@ Page Language="C#" MasterPageFile="~/DefaultMaster.master" AutoEventWireup="true" EnableEventValidation="false" CodeFile="Login.aspx.cs" Inherits="AIO.WITWeb.Login" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="mainContentPlaceholder" runat="Server">
<asp:Login ID="LoginMain" runat="server" CreateUserText="<%$ Resources:GResource, CreateUser %>" CreateUserUrl="User/CreateUser.aspx" LoginButtonImageUrl="Images/Login.gif" OnLoggedIn="LoginMain_LoggedIn" PasswordRecoveryText="<%$ Resources:GResource, ForgottenPassword %>" PasswordRecoveryUrl="User/EMailForgottenPassword.aspx" RememberMeSet="True">
</asp:Login>
</asp:Content>

 

只改动了命名空间Inherits="AIO.WITWeb.Login"  当然需要修改cs文件略

posted on 2006-09-27 10:24  Bolik  阅读(4190)  评论(8编辑  收藏  举报