如何在本地主机配置虚拟目录用于ASP.NET MVC 5测试?
在VS2017中为ASP.NET MVC5配置本地虚拟目录(加载外部图片)
我之前做ASP.NET MVC项目时也遇到过完全一样的需求——不想把大量图片塞进项目目录,直接从外部路径加载,给你分享两种本地测试时的配置方法,分别对应VS常用的两种本地服务器环境:
方法一:针对IIS Express(VS默认开发服务器)
IIS Express的配置是通过applicationhost.config文件管理的,步骤如下:
- 找到项目对应的配置文件:
- 如果你已经用VS打开项目并运行过IIS Express,配置文件通常在项目根目录下的
.vs\config\applicationhost.config(.vs是隐藏文件夹,需要先在文件夹选项中开启显示隐藏文件) - 也可以用全局配置文件:
C:\Users\[你的用户名]\Documents\IISExpress\config\applicationhost.config,但更推荐用项目专属的,避免影响其他项目
- 如果你已经用VS打开项目并运行过IIS Express,配置文件通常在项目根目录下的
- 打开这个XML文件,找到你的项目对应的
<site>节点——比如你项目URL是http://localhost:51138/,对应的site节点会在bindings里包含这个端口,或者name属性匹配你的项目名称 - 在
<site>下的<application>节点里,新增一个<virtualDirectory>节点,示例如下:<site name="你的项目名" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\Projects\你的MVC项目根目录" /> <!-- 新增的虚拟目录:别名是Images,指向外部图片存储路径 --> <virtualDirectory path="/Images" physicalPath="D:\ExternalImageFolder" /> </application> <bindings> <binding protocol="http" bindingInformation="*:51138:localhost" /> </bindings> </site> - 保存配置文件,重启VS和IIS Express
- 现在你就可以在MVC视图里用
/Images/xxx.jpg来引用外部路径里的图片了
⚠️ 注意:如果遇到403权限错误,右键点击外部图片文件夹 → 属性 → 安全 → 添加IIS_IUSRS用户,给它分配读取权限
方法二:针对本地IIS(需先安装本地IIS组件)
如果你想让本地测试环境和服务器更接近,可以用本地IIS来配置,步骤如下:
- 打开VS2017,右键你的MVC项目 → 属性 → 切换到Web标签页
- 在“服务器”区域,选择“本地IIS”,然后在“项目URL”里输入自定义本地地址,比如
http://localhost/MyMvcApp - 点击“创建虚拟目录”按钮,VS会自动在本地IIS中为项目创建主虚拟目录
- 打开Internet Information Services (IIS)管理器,找到刚才创建的网站/应用程序(比如
MyMvcApp) - 右键它 → 添加虚拟目录,输入别名(比如
Images),然后选择你的外部图片物理路径,点击确定 - 同样要确保IIS应用程序池的运行账户拥有该路径的读取权限,之后重启IIS
- 回到VS,将项目启动服务器切换为本地IIS,运行项目后就可以用
/Images/xxx.jpg引用外部图片了
测试验证
配置完成后,直接在浏览器中访问对应地址:比如IIS Express环境下访问http://localhost:51138/Images/测试图片.jpg,本地IIS环境下访问http://localhost/MyMvcApp/Images/测试图片.jpg,如果能正常显示图片,说明配置成功。
内容的提问来源于stack exchange,提问作者Osti
相关产品推荐
相关产品推荐

