2009-09-27 32 views
8

Tôi đang sử dụng IIS7 và phần mở rộng Yêu cầu định tuyến ứng dụng để hoạt động như một proxy ngược với Subversion đang chạy trên Apache.IIS7 và ARR là proxy ngược cho Subversion

Proxy hoạt động tốt và tôi có thể khám phá máy chủ và thậm chí thực hiện "kiểm tra". Tuy nhiên, tôi không thể duyệt đến các tập tin thường bị cấm bởi ASP.NET - ví dụ, .cs, .csproj, v.v. Các tệp ASP.NET sẽ không được quan tâm - chẳng hạn như .txt - là tốt.

Tôi đã cố gắng chỉnh sửa web.config chung để xóa ánh xạ xử lý bị cấm đối với các tệp này, nhưng dường như không tạo sự khác biệt. Có cách nào để cho phép các mô-đun viết lại URL trong IIS7 để làm việc, trong khi cho phép tất cả các phần mở rộng tập tin được trả lại?

Trả lời

13

IIS7 có một tập tin applicationHost.config trong đó có một phần an ninh giới hạn phần mở rộng tập tin:

<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> 

Thông tin thêm:

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

Tôi đã thêm một phần tương tự như web.config trang web của tôi và đã sử dụng nút <clear /> để xóa tất cả tiện ích. Bây giờ tôi có thể phục vụ các tệp .cs, .csproj và các tệp khác, nhưng tôi không thể phục vụ tệp .config.

Chỉnh sửa: Xóa các nút Chỉnh sửa cũng đã sửa lỗi này cho tệp web.config. Dưới đây là tập tin của tôi địa phương web.config:

<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

Yep, điều này làm việc cho tôi. +1 –

+0

Đây là câu trả lời. Cảm ơn bạn! – Alexandr

3

Tôi đã làm việc với web.config của tôi trông như vậy:

<?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> 
Các vấn đề liên quan