在IIS Express中创build虚拟目录

有没有办法在IIS Express中创build虚拟目录? 我知道Cassini无法做到这一点,如果不使用IIS的完整版本,就能够做到这一点,这将是非常好的。

到目前为止,我可以通过IIS express在本地浏览我的应用程序,如下所示:

HTTP://本地主机:1132 /

我想要做的是创build一个名为“OffSiteStuff”的虚拟目录,并将其指向C驱动器上的某个位置,如“c:\ offsitestuff”,然后浏览到该文件夹​​中的项目,如下所示:

HTTP://本地主机:1132 / OffSiteStuff / UserUploadedImage.jpg

我知道我可以做到这一点与我的网站内的文件夹,仍然使用IIS Express,或者,对于这个问题普通的老卡西尼,但这个文件夹将存储用户上传的图像,我真的不希望有这些图像混合起来应用程序文件

另一个“走大”的解决scheme是将网站部署到一个完整的Server 2008 IIS 7.5实例,每当我想debugging使用非现场内容的function,但这也有点麻烦。

有什么办法可以在<System.WebServer /> Webconfiguration元素中做到这一点?

IIS Expressconfiguration由applicationhost.configpipe理。
你可以find它

用户\ <用户名> \ Documents \ IISExpress \ config文件夹。

在内部,您可以find为每个IIS Expressconfiguration的站点保留一部分的网站部分。

添加(或修改)这样的网站部分:

 <site name="WebSiteWithVirtualDirectory" id="20"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:\temp\website1" /> </application> <application path="/OffSiteStuff" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="d:\temp\SubFolderApp" /> </application> <bindings> <binding protocol="http" bindingInformation="*:1132:localhost" /> </bindings> </site> 

实际上,您需要为每个虚拟目录在您的站点中添加一个新的应用程序标记。 您可以获得很大的灵活性,因为您可以为虚拟目录设置不同的configuration(例如,不同的.Net Framework版本)

编辑感谢FevziApaydın指出一个更优雅的解决scheme。

您可以通过将一个或多个virtualDirectory标签添加到Application标签来获得相同的结果:

 <site name="WebSiteWithVirtualDirectory" id="20"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:\temp\website1" /> <virtualDirectory path="/OffSiteStuff" physicalPath="d:\temp\SubFolderApp" /> </application> <bindings> <binding protocol="http" bindingInformation="*:1132:localhost" /> </bindings> </site> 

参考:

  • 应用程序标记的网站
  • 虚拟目录标签

Be.St.的违法行为是真实的,但并不完整。 我只是复制他的解释,纠正不正确的部分。

IIS Expressconfiguration由applicationhost.configpipe理。
你可以find它

用户\ <用户名> \ Documents \ IISExpress \ config文件夹。

在内部,您可以find为每个IIS Expressconfiguration的站点保留一部分的网站部分。

添加(或修改)这样的网站部分:

 <site name="WebSiteWithVirtualDirectory" id="20"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:\temp\website1" /> <virtualDirectory path="/OffSiteStuff" physicalPath="d:\temp\SubFolderApp" /> </application> <bindings> <binding protocol="http" bindingInformation="*:1132:localhost" /> </bindings> </site> 

您应该添加一个新的virtualDirectory元素到应用程序的父元素,而不是添加一个新的应用程序块。

编辑 – Visual Studio 2015

如果你正在寻找applicationHost.config文件,你正在使用VS2015,你会发现它:

[solution_directory] ​​/。VS /configuration/的applicationHost.config

在VS2013中,我通过以下步骤做到了这一点:

1.右键单击Web应用程序项目,然后点击属性

2.查看“属性”页面的“Web”选项卡

3.在“服务器”中,“IIS Express”是下拉列表的默认选项,在“Project Url”中使用端口号将URL更改为适合您的端口号。 例如,我删除了端口号,并在本地主机之后添加了“/ MVCDemo4”。

4.点击“创build虚拟目录”button。

5.运行您的项目,并使用新的url

Jexus Manager for IIS Express是一个新的选项,

https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/

这只是你知道如何使用的pipe理工具。

我还有别的东西,那些在SBS环境中无法访问的文件本身。

删除configuration文件夹中的文件(如果无法打开它们!),并将其replace为您自己的本地PC上的文件夹的副本。

修正了我的:)

如果您使用的是Visual Studio 2013(可能需要专业版或更高版本),则可以通过右键单击解决scheme资源pipe理器中的网站,然后单击添加>添加虚拟目录到IIS Express(基于文件的)新的虚拟目录。 这添加了一个条目到applicationhost.config文件,就像这里描述的手动方法一样。