using (StreamReader sr = new StreamReader(System.Web.HttpContext.Current.Request.MapPath(templatePath), System.Text.Encoding.GetEncoding("gb2312")))
        {
            HTMLContent = sr.ReadToEnd();
            sr.Close();
        }---------------
我的 string templatePath = "/html/text.htm";这句在2003下运行正常,在2005下就提示错误:未能映射路径“/html/text.htm”。这是怎么回事啊,我没权限?这是在本地啊,又是管理员登陆的。
谢谢了

解决方案 »

  1.   

    Web 程序?  
    使用 Server.MapPath 
      
      

  2.   

    是在什么环境下运行的?如果是启动的.NET,他应该是找的默认.NET环境的路径,而不是你建立的站点的路径,你用绝对路径试试应该就可以了~~~~~~~~~~
      

  3.   

    web 程序,以前运行是在2003 系统+vs2003 就ok 
    现在是 2003系统+vs2005就不行
      

  4.   


    Url = "~/html/text.htm";
    this.Server.MapPath(url)
    用这个映射
      

  5.   

    最简单的方法就是用绝对路径,但这不是解决问题的本质。
    为什么在vs2005和2003会有区别呢?
    原因是2005默认的web工程为"Web Site"而非2003的"Web Application",在2005中有很多地方是不能用以前的代码的,比如web也面中的事件绑定,在2005中是不需要的。
    以Web Site创建的Web站点的Server.MapPath指向的是dll的路径。
    要想解决你的问题,下载一个2005的补丁。
    http://www.microsoft.com/downloads/thankyou.aspx?familyId=8B05EE00-9554-4733-8725-3CA89DD9BFCA&displayLang=en补丁名称:
    Microsoft Visual Studio 2005 - Update to Support Web Application Projects
    这样你再创建一个Web Application的项目
    添加你的代码就可以了
      

  6.   

    string templatePath = @"/html/text.htm";