2012-02-20 73 views
7

我想在Orchard网络应用程序内部有一个/ downloads文件夹,我可以指引客户端,以便他们可以下载文件即。 www.mydomain.com/downloads/test.txtOrchard web应用程序内部的虚拟目录

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

在果园Global.ascx文件,我已经添加了下面,以为这是一个路由的问题:如果

肯定这是必需的
public static void RegisterRoutes(RouteCollection routes) { 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.IgnoreRoute("downloads/{*pathInfo}"); // added this IgnoreRoute 
} 

不是100%。

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

回答

8

找到修复感谢这个帖子:http://orchard.codeplex.com/discussions/280041

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

之后,问题是Orchard中的web.config传播到子应用程序。要停止此操作,您需要在Orchard的web.config文件中的<system.web><system.webserver>节点周围添加<location path="." inheritInChildApplications="false">。您可以在位置标记here上阅读更多内容。

做出这些改变后,我可以成功下载我的test.txt文件没有问题。

2

非常好,非常感谢你的回答。直客在这里我的果园风格打破了执行它之后,但在看看这个链接之后,我发现这段代码:

<location path="Themes"> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers accessPolicy="Script"> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
    </location> 
    <location path="Core">  
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers accessPolicy="Script"> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
    </location> 
    <location path="Media"> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers accessPolicy="Script"> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
    </location> 
    <location path="Modules"> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers accessPolicy="Script"> 
      <remove name="StaticFile" /> 
     </handlers> 
    </system.webServer> 
    </location> 

这将解决您的果园风格,对于具有这个问题的人。

它应该放在网站根目录下的web.config文件中,在<runtime>之前,最后</location>之后,您将刚添加完成包装<system.webServer>

0

你不一定需要破解果园下的配置。 在我类似的情况有足够的创建具有下列内容的虚拟目录下一个web.config:

<configuration> 
<system.webServer> 
<handlers accessPolicy="Read, Script"> 
    <clear /> 
    <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Script" /> 
</handlers> 
</system.webServer> 

相关问题