在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文件,就像这里描述的手动方法一样。
- 在IIS7 Express上使用Fiddler
- 在IIS Express的web.config中添加MIME映射
- 源代码pipe理中的.vs \ config \ applicationhost.config
- IIS Express在停止Web应用程序后立即closures正在运行的站点
- configurationIIS Express以便对VS2010项目进行外部访问
- IIS Express Windows身份validation
- IISExpress与0xc0000008错误崩溃
- 无法启动IIS Express Web服务器,无法注册URL,访问被拒绝
- 在VS2013中debugging时的validation问题 – iis express