tnblog
首页
视频
资源
登录

MVC web应用如何在IIS Express中使用虚拟目录

7011人阅读 2020/5/17 15:26 总访问:7011 评论:1 收藏:0 手机
分类: 积累

    在asp.net web项目开发中,有时候会涉及到虚拟目录的问题,使用虚拟目录功能映射一个非项目内的文件夹实现文件共享,这个功能在IIS中很好实现,鼠标右键“添加虚拟目录”然后添加虚拟文件夹的目录名称和实际物理路径之后即可完成。


   废话少说,直接上解决方案


   假设需求:访问example.com\userfiles\avater.jpg

   项目里不存在userfiles这个文件夹,需要使用D:\web\files\avater.jpg这个文件


   1. 首先需要解决MVC的路由问题,让指定的某个网站目录不要走路由,在RouteConfig.cs中加入如下路径忽略代码

routes.IgnoreRoute("userfiles/{*pathinfo}");

       注意不要写成"/userfiles/{*pathinfo}",会报错提示不能使用/开头。


    经过以上的步骤,MVC应用程序在接受到访问/userfiles/*的请求时就会绕过路由直接访问userfiles目录,而不是去找userfiles这个controller了。



    2. 设置目录映射,如果是在IIS中运行的,按文件开头提示的方法添加虚拟目录即可。

    但是如果是在IIS Express中,则需要手动编辑IIS Express的applicationhost.config文件,具体文件路径根据你所使用的操作系统而定,win10的路径在C:\Users\User\Documents\IISExpress\config,将User替换成当前用户,此处涉及windows的使用不多讲。

        

    使用文本编辑器(notepad++,UEditor,记事本都行),打开applicationhost.config文件,在<sites></sites>节点中找到你的MVC web应用的节点,在<application></application>内添加以下文本

<virtualDirectory path="/userfiles" physicalPath="D:\web\files" />

    将path的值设置为网站目录,physicalPath的值设置为所需要的映射的实际物理路径即可。


至此,Done。


评价
没有个性,不需要签名
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术