Orchard Web应用程序内的虚拟目录

ajb*_*ven 7 asp.net asp.net-mvc web-config orchardcms

我想在Orchard网络应用程序中有一个/ downloads文件夹,我可以在其中指导客户端,以便他们可以下载文件,即.www.mydomain.com/downloads/test.txt

在IIS中,我在Orchard网站下面创建了一个虚拟目录(不是应用程序),指向服务器上的下载文件夹.

在Orchard Global.ascx文件中,我添加了以下内容,认为这是一个路由问题:

public static void RegisterRoutes(RouteCollection routes) {
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.IgnoreRoute("downloads/{*pathInfo}"); // added this IgnoreRoute
}
Run Code Online (Sandbox Code Playgroud)

如果需要,不是100%确定.

但是,当我下载文件www.mydomain.com/downloads/test.txt时,我继续收到404错误.

ajb*_*ven 8

通过这篇文章找到了修复程序:http://orchard.codeplex.com/discussions/280041

首先,它需要是Orchard网站下的应用程序,而不仅仅是虚拟目录.在IIS中,您可以右键单击虚拟目录>转换为应用程序.

之后,问题是Orchard中的web.config传播到子应用程序.要停止这一点,你需要添加<location path="." inheritInChildApplications="false">两个周围<system.web>和<system.webserver>节点在果园的web.config文件.您可以在此处阅读有关位置标记的更多信息.

完成这些更改后,我可以成功下载我的test.txt文件,没有任何问题.