且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

更新时间:2022-09-21 14:46:03

说一下我想要实现的效果:

      假如我做一个图片展示类的网站,或者其他需要用户上传文件的网站,需要将用户上传的文件保存到一个Uploadfiles文件夹下,一般我们在做项目时用户上传的文件都是保存在网站项目的同目录下,而考虑到随着网站的逐渐运行,这个Uploadfiles文件肯定会越来越大。所以,考虑到这一点,我就想能不能实现将这个Uploadfiles文件夹放在其他的磁盘目录下,比如网站项目放在服务器C盘下,而Uploadfiles文件夹放在D盘下。

      开始考虑用虚拟目录来实现,但是又担心项目中在使用该目录时会出现找不到目录的问题。后来测试发现需要注意一个地方,就不会报错了。

 

我的网站项目:

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

Default.aspx页面用于向虚拟目录中写入数据;Web.aspx页面用于读取虚拟目录中的数据。

 

搭建到IIS中的目录结构:

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

Upload文件夹为我创建的虚拟目录,引用的是其他磁盘下的一个文件夹。

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

 

通过高级设置中可以看到:

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

 

说明:

这里为了模拟向虚拟目录中传入数据,用向文本文档中写入数据来测试。

Default.aspx页面中的代码:

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录
        protected void Page_Load(object sender, EventArgs e)
        {
            string path = Server.MapPath("~/Upload/eds.txt");


            using (StreamWriter sw=new StreamWriter(path,true))
            {
                Random r = new Random(); 
                sw.Write("我又加了一条 "+r.Next(0,100)+" <br/>");
            }
            Response.Write("ok");
        }
[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

 

Web.aspx页面中的代码:

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录
        protected void Page_Load(object sender, EventArgs e)
        {
            string path = Server.MapPath("~/Upload/eds.txt");

            using (StreamReader sr = new StreamReader(path, true))
            {
                Response.Write(sr.ReadToEnd());
            }
        }
[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

运行,数据就会写入到虚拟目录中了,和真实目录效果一样。

我在几次测试过程中出现了一次错误:

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

这种情况下,将应用程序池由集成模式改为经典模式就能运行了。

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

 

测试效果:

写入数据:

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

显示数据:

[开发笔记]-ASP.NET项目在IIS上使用虚拟目录

 

 本文转自 酷小孩 博客园博客,原文链接: http://www.cnblogs.com/babycool/p/3507319.html ,如需转载请自行联系原作者