今天遇到的一个问题,SiteMap.aspx.页面编译后出错,原因是:.CS类里面定义页面的类时,类名为SiteMap,和静态的System.Web.SiteMap重名,.CS的SiteMap类无法转换为静态的。编译后报错,MS就是这样的。但直接运行程序就不出错。这是为虾米呢。。
程序运行无错,编译通过,但是发布后就出错,高手帮忙看看,郁闷了好几天了
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: CS0716: 无法转换为静态类型“System.Web.SiteMap”
源错误:
行 120: public sitemap_aspx() {
行 121: string[] dependencies;
行 122: ((SiteMap)(this)).AppRelativeVirtualPath = "~/SiteMap.aspx";
行 123: if ((global::ASP.sitemap_aspx.@__initialized == false)) {
行 124: global::ASP.sitemap_aspx.@__stringResource = this.ReadStringResource();
源文件: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\171989b1\c89df8ef\App_Web_sitemap.aspx.cdcab7d2.jyacigby.0.cs 行: 122
解决办法是:这个页面SiteMap.aspx的CS页在审明这类的时候
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Collections.Generic;
using YuXiang.BLL;
using YuXiang.Model;
public partial class SiteMap : System.Web.UI.Page{//这里的类名不能是SiteMap,,,可能和系统的SiteMap重复吧,不大明白,所以把这里改成其它名称,SiteMaps也不行,比如改为:SiteMapcc,
public partial class SiteMapcc: System.Web.UI.Page{//
当然相应的:SiteMap.aspx的源视图也要改: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="SiteMap.aspx.cs" Inherits="SiteMapcc" %>