2009-09-27 17 views
8

Apache üzerinde çalışan Subversion'a ters proxy olarak davranmak için IIS7 ve Application Request Routing uzantısını kullanıyorum.IIS7 ve Subversion için ters proxy olarak ARR

Vekil iyi çalışıyor ve sunucuyu keşfedebiliyorum ve hatta "check out" gerçekleştirebiliyorum. Ancak, ASP.NET tarafından normalde yasaklanan dosyalara göz atamıyorum - örneğin, .cs, .csproj, vb. Dosyalar ASP.NET ile ilgilenmeyecek - .txt gibi - iyi.

Bu dosyalar için Yasak işleyici eşlemesini kaldırmak için global web.config dosyasını düzenlemeyi denedim, ancak bir fark yaratmıyor gibi görünüyordu. Tüm dosya uzantılarının oluşturulmasına izin verirken, IIS7'deki URL yeniden yazma modülünün çalışmasına izin vermenin herhangi bir yolu var mı?

cevap

13

IIS7 dosya uzantılarını sınırlayan bir güvenlik bölümü olan bir applicationHost.config dosyası vardır:

<requestFiltering> 
    <fileExtensions allowUnlisted="true" applyToWebDAV="true"> 
    <add fileExtension=".cs" allowed="false" /> 
    <add fileExtension=".csproj" allowed="false" /> 
    <add fileExtension=".vb" allowed="false" /> 
    <add fileExtension=".vbproj" allowed="false" /> 
    .... 
    </fileExtensions> 

fazla bilgi: http://learn.iis.net/page.aspx/143/how-to-use-request-filtering/

Sitemin web.config benzer bir bölüm ekleyip Tüm uzantıları kaldırmak için <clear /> düğümünü kullandı. Şimdi .cs, .csproj dosyaları ve diğerleri sunabilirim, ancak .config dosyalarını henüz kullanamıyorum.

Düzenleme: Bu, web.config dosyaları için de hiddenSection düğümlerini kaldırır.

<system.webServer> 
    <security> 
    <requestFiltering> 
     <fileExtensions allowUnlisted="true" applyToWebDAV="true"> 
     <clear /> 
     </fileExtensions> 
     <verbs allowUnlisted="true" applyToWebDAV="true" /> 
     <hiddenSegments applyToWebDAV="true"> 
     <clear /> 
     </hiddenSegments> 
    </requestFiltering> 
    </security> 
</system.webServer> 
+0

Evet, bu benim için çalıştı İşte benim yerel web.config dosyasıdır. +1 –

+0

Cevap budur. Teşekkür ederim! – Alexandr

3

benim web.config yüzden benzeyen ile çalışma var:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="ReverseProxyInboundRule1" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{CACHE_URL}" pattern="^(https?)://" /> 
        </conditions> 
        <action type="Rewrite" url="{C:1}://localhost:8080/{R:1}" /> 
       </rule> 
      </rules> 
      <outboundRules> 
       <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1"> 
        <match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:8080/(.*)" /> 
        <action type="Rewrite" value="http{R:1}://svn.mysite.com/{R:2}" /> 
       </rule> 
       <preConditions> 
        <preCondition name="ResponseIsHtml1"> 
         <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> 
         <add input="{RESPONSE_CONTENT_ENCODING}" pattern="[^(gzip)]" /> 
        </preCondition> 
       </preConditions> 
      </outboundRules> 
     </rewrite> 
     <security> 
     <requestFiltering> 
      <fileExtensions allowUnlisted="true" applyToWebDAV="true"> 
      <clear /> 
      </fileExtensions> 
      <verbs allowUnlisted="true" applyToWebDAV="true" /> 
      <hiddenSegments applyToWebDAV="true"> 
      <clear /> 
      </hiddenSegments> 
     </requestFiltering> 
     </security> 
    </system.webServer> 
</configuration> 
İlgili konular