当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)

ASP.NET
在ASP.NET中如何用C#.NET实现基于表单的验证
ADO.NET Entity Framework 试水:并发
.Net的精髓:XML和SOAP
多语言开发的个人体验
ASP.NET Routing对请求的处理方式
探索.Net中的委托
使用 ASP.NET 加密口令
[ASP.NET] Session 详解
ASP+ 与 Java
从ASP迁移至ASP+
从ASP迁移至ASP+ ----------进入DataSet
从ASP迁移至ASP+ --将HTML表格转换为ASP+数据列表
从ASP迁移至ASP+ --处理会话变量(Session Variables)
ASP+ 与 Java(一)
ASP+ 与 Java(二)
asp+的论坛列表程序---代码部分
asp+的论坛列表程序---页面部分
什么是受管(managed)?
用c#写的asp+域名查询程序
ASP+联结数据库

ASP.NET 中的 找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 143 ::
收藏到网摘: n/a

今天将webserice里面的一个代码,拷到一个C#类,结果运行编译错误。
DataBase = Server.MapPath("data.mdb");
报错:找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)
但是我的确引用了名字空间using System.Web;为什么呢?
因为Server的完整路径是System.Web.HttpContext.Current.Server。using System.Web是显然不够的;但是在从内置Page类继承的类中可以直接写Server.MapPath"data.mdb"),应该是因为Page类已经包含了这些类路径。
由此总结对这类错误的解决方法如下
1、确保正确的程序集引用:
确保引用了包含命名空间的程序集。如果是在 Visual Studio .NET 中进行开发,则可以转到项目菜单并单击添加引用。在 .NET 选项卡上,选择包含您要导入的命名空间的程序集,或者浏览到包含程序集的文件夹。如果在使用命令行编译器,则向编译语句中添加相应的开关 (/reference)。
2、正确的命名空间:
(1)*如果你从Page类继承的类中执行这条语句,才可以简单地使用
DataBase = Server.MapPath("data.mdb");
(2)如果在普通类中
A)将using 语句放在包含类型引用的代码文件的顶端,确保在将命名空间导入项目:
using System.Web;
DataBase = HttpContext.Current.Server.MapPath("data.mdb");
B)如果没有using语句,则完全限定对类型的引用:
DataBase = System.Web.HttpContext.Current.Server.MapPath("data.mdb");