2012-02-20 7 views
7

Orchardウェブ・アプリケーション内に/ downloadsフォルダを置いて、クライアントに直接ファイルをダウンロードできるようにしたいとします。 www.mydomain.com/downloads/test.txtオーチャード・ウェブ・アプリケーション内の仮想ディレクトリ

IISでは、サーバー上のダウンロードフォルダを指し示すOrchard Webサイトの下に仮想ディレクトリ(アプリケーションではない)を作成しました。オーチャード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では、仮想ディレクトリ>アプリケーションに変換するを右クリックすることができます。

その後、オーチャードのweb.configが子アプリケーションに伝播するという問題があります。これを止めるには、をOrchardのweb.configファイルの<system.web><system.webserver>ノードの両方に追加する必要があります。ロケーションタグ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> 

その問題を持つ人のために、あなたのオーチャードスタイルを修正します:ストレートオフここに私のオーチャードスタイルが壊れ、それを実装した後、しかし、そのリンクを見た後、私は、コードのこのビットに気づきました。 の直前で、最後に</location>の後に、最後に貼り付けた<system.webServer>の後にweb.configファイルに配置する必要があります。

0

オーチャードの設定をハックする必要はありません。

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

: は私のために似たような状況では、以下の内容を含む仮想ディレクトリの下にweb.configファイルを作成するのに十分でした
関連する問題