我正在构建一个 ASP.NET 3.5 Web 应用程序。当我运行项目时(使用 Visual Studio 的内置服务器),它需要能够以虚拟目录的形式访问网络共享。我似乎找不到任何有关如何执行此操作的信息。
网络资源非常大,更新频繁,被其他开发者和其他项目项目使用——不仅仅是我和我的。
我知道一旦部署了站点,我就可以为网络路径创建一个 IIS 虚拟目录,但这在我调试时对我没有帮助。
我正在构建一个 ASP.NET 3.5 Web 应用程序。当我运行项目时(使用 Visual Studio 的内置服务器),它需要能够以虚拟目录的形式访问网络共享。我似乎找不到任何有关如何执行此操作的信息。
网络资源非常大,更新频繁,被其他开发者和其他项目项目使用——不仅仅是我和我的。
我知道一旦部署了站点,我就可以为网络路径创建一个 IIS 虚拟目录,但这在我调试时对我没有帮助。
您无法使用 Web 开发服务器执行此操作。它用于调试单个应用程序,而不是依赖于多个虚拟目录的应用程序。
它如何引用映射到共享的虚拟目录?通过重定向到该虚拟目录下的资源?如果是这样,那么在调试期间,您是否可以将它重定向到的位置更改为 IIS 虚拟目录?
现在可以使用较新版本的 Visual Studio 和 IIS Express 同时拥有虚拟目录和子应用程序。
.vs\All\config\applicationhost.config
在您选择的文本编辑器中打开,然后导航到该configuration/system.applicationHost/sites
节点。
更新site
与您的父应用程序对应的元素,如下所示:
原来的:
<site name="Web" id="1">
<!-- parent application -->
<application path="/" applicationPool="Clr4IntegratedAppPool">
<!-- application root -->
<virtualDirectory path="/" physicalPath="C:\Src\Web" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:5706:localhost" />
<binding protocol="https" bindingInformation="*:44300:localhost" />
</bindings>
</site>
修改的:
<site name="Web" id="1">
<!-- parent application -->
<application path="/" applicationPool="Clr4IntegratedAppPool">
<!-- application root -->
<virtualDirectory path="/" physicalPath="C:\Src\Web" />
<!-- virtual directory -->
<virtualDirectory path="/DocRoot" physicalPath="C:\Src\DocRoot" />
</application>
<!-- sub-application -->
<application path="/FooBar" applicationPool="Clr4IntegratedAppPool">
<!-- application root -->
<virtualDirectory path="/" physicalPath="C:\Src\Foo Bar" />
<!-- virtual directory; shared with parent app, so must be duplicated -->
<virtualDirectory path="/DocRoot" physicalPath="C:\Src\DocRoot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:5706:localhost" />
<binding protocol="https" bindingInformation="*:44300:localhost" />
</bindings>
</site>