2017-06-06 118 views
2

我在URL重定向/重写过程中遇到了404错误,而且我无法确定导致它的原因。这是ARR警告导致我的404?

的警告是:

REWRITE_DISABLED_KERNEL_CACHE

这里是我的规则:

<rule name="TFS Redirect" stopProcessing="true"> 
    <match url="^((?!tfs).)*$" /> 
    <conditions> 
    <add input="{HTTP_HOST}" pattern="tfs.domain.com" /> 
    </conditions> 
    <action type="Redirect" url="http://tfs.domain.com/tfs" /> 
</rule> 
<rule name="TFS Rewrite" stopProcessing="true"> 
    <match url="^tfs(.*)" /> 
    <action type="Rewrite" url="http://server3:8080/{R:0}" /> 
</rule> 

重定向规则似乎是工作,我在浏览器中得到tfs.domain.com/tfs当我浏览到tfs.domain.com

但后来我得到的404我已经看过了失败请求日志,但他们没有透露太多。有this question,但恐怕我对这个讨论意味着什么绝对不知所措。也许这是我的问题的解决方案,但我不知道他们在说什么。不幸的是,这远远超过了我的头脑。

那么... ARR警告是否会导致404?如果没有,我怎么才能找到这个问题的根源呢?

精简视图

No. EventName      Details                                            Time 
--- ------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------- 
1. GENERAL_REQUEST_START   SiteId="1", AppPoolId="DefaultAppPool", ConnId="1610612761", RawConnId="0", RequestURL="http://tfs.domain.com:80/favicon.ico", RequestVerb="GET"         01:03:35.718 
2. GENERAL_SET_REQUEST_HEADER  HeaderName="AspFilterSessionId", HeaderValue="", Replace="true"                              01:03:35.718 
3. GENERAL_ENDPOINT_INFORMATION RemoteAddress="192.168.0.1", RemotePort="54278", LocalAddress="192.168.0.12", LocalPort="80"                      01:03:35.718 
4. GENERAL_REQUEST_HEADERS   Headers="Cache-Control: no-cache                                     01:03:35.718 
            Connection: keep-alive 
            Pragma: no-cache 
            Accept: image/webp,image/*,*/*;q=0.8 
            Accept-Encoding: gzip, deflate, sdch 
            Accept-Language: en-US,en;q=0.8 
            Host: tfs.domain.com 
            Referer: http://tfs.domain.com/tfs 
            User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 
            DNT: 1 
            " 
5. GENERAL_GET_URL_METADATA  PhysicalPath="", AccessPerms="513"                                     01:03:35.718 
6. HANDLER_CHANGED     OldHandlerName="", NewHandlerName="StaticFile", NewHandlerModules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule", NewHandlerScriptProcessor="", NewHandlerType="" 01:03:35.718 
7. MODULE_PRECONDITION_NOT_MATCH Name="UrlRoutingModule-4.0", Precondition="managedHandler,runtimeVersionv4.0"                          01:03:35.718 
8. MODULE_PRECONDITION_NOT_MATCH Name="ScriptModule-4.0", Precondition="managedHandler,runtimeVersionv4.0"                           01:03:35.718 
9. MODULE_PRECONDITION_NOT_MATCH Name="OutputCache", Precondition="managedHandler"                                 01:03:35.718 
10. MODULE_PRECONDITION_NOT_MATCH Name="Session", Precondition="managedHandler"                                  01:03:35.718 
11. MODULE_PRECONDITION_NOT_MATCH Name="WindowsAuthentication", Precondition="managedHandler"                               01:03:35.718 
12. MODULE_PRECONDITION_NOT_MATCH Name="FormsAuthentication", Precondition="managedHandler"                               01:03:35.718 
13. MODULE_PRECONDITION_NOT_MATCH Name="DefaultAuthentication", Precondition="managedHandler"                               01:03:35.718 
14. MODULE_PRECONDITION_NOT_MATCH Name="RoleManager", Precondition="managedHandler"                                 01:03:35.718 
15. MODULE_PRECONDITION_NOT_MATCH Name="UrlAuthorization", Precondition="managedHandler"                                01:03:35.718 
16. MODULE_PRECONDITION_NOT_MATCH Name="FileAuthorization", Precondition="managedHandler"                                01:03:35.718 
17. MODULE_PRECONDITION_NOT_MATCH Name="AnonymousIdentification", Precondition="managedHandler"                              01:03:35.718 
18. MODULE_PRECONDITION_NOT_MATCH Name="Profile", Precondition="managedHandler"                                  01:03:35.718 
19. MODULE_PRECONDITION_NOT_MATCH Name="UrlMappingsModule", Precondition="managedHandler"                                01:03:35.718 
20. MODULE_PRECONDITION_NOT_MATCH Name="ServiceModel-4.0", Precondition="managedHandler,runtimeVersionv4.0"                           01:03:35.718 
21. URL_REWRITE_START    RequestURL="/favicon.ico", Scope="Distributed", Type="Inbound"                              01:03:35.718 
22. RULE_EVALUATION_START   RuleName="TFS Redirect", RequestURL="favicon.ico", QueryString="", PatternSyntax="Regex", StopProcessing="true", RelativePath="/"             01:03:35.718 
23. PATTERN_MATCH     Pattern="^((?!tfs).)*$", Input="favicon.ico", Negate="false", Matched="true"                          01:03:35.718 
24. CONDITIONS_EVALUATION_START  LogicalGrouping="MatchAll"                                       01:03:35.718 
25. CONDITION_EVALUATION   Input="{HTTP_HOST}", ExpandedInput="tfs.domain.com", MatchType="Pattern", Pattern="tfs.domain.com", Negate="false", Succeeded="true"            01:03:35.718 
26. CONDITIONS_EVALUATION_END  Succeeded="true"                                         01:03:35.718 
27. REDIRECT_ACTION     Substitution="https://tfs.domain.com/tfs", RedirectURL="https://tfs.domain.com/tfs", AppendQueryString="true", RedirectType="Permanent"            01:03:35.718 
28. RULE_EVALUATION_END    RuleName="TFS Redirect", RequestURL="https://tfs.domain.com/tfs", QueryString="", StopProcessing="true", Succeeded="true"               01:03:35.718 
29. REWRITE_DISABLED_KERNEL_CACHE                                              01:03:35.718 
     Warning 

30. GENERAL_SET_RESPONSE_HEADER  HeaderName="Location", HeaderValue="https://tfs.domain.com/tfs", Replace="true"                          01:03:35.718 
31. URL_REWRITE_END     RequestURL="https://tfs.domain.com/tfs"                                    01:03:35.718 
32. GENERAL_SET_RESPONSE_HEADER  HeaderName="X-Powered-By", HeaderValue="ASP.NET", Replace="false"                             01:03:35.718 
33. GENERAL_NOT_SEND_CUSTOM_ERROR Reason="SETSTATUS_SUCCESS"                                       01:03:35.718 
34. GENERAL_FLUSH_RESPONSE_START                                              01:03:35.718 
35. GENERAL_RESPONSE_HEADERS  Headers="Content-Type: text/html; charset=UTF-8                                  01:03:35.718 
            Location: https://tfs.domain.com/tfs 
            Server: Microsoft-IIS/10.0 
            X-Powered-By: ASP.NET 
            " 
36. GENERAL_RESPONSE_ENTITY_BUFFER Buffer="<head><title>Document Moved</title></head>                                 01:03:35.718 
            <body><h1>Object Moved</h1>This document may be found <a HREF="https://tfs.domain.com/tfs">here</a></body>" 
37. GENERAL_FLUSH_RESPONSE_END  BytesSent="370", ErrorCode="The operation completed successfully.                             01:03:35.718 
            (0x0)" 
38. GENERAL_REQUEST_END    BytesSent="370", BytesReceived="400", HttpStatus="301", HttpSubStatus="0"                           01:03:35.718

回答

1

你所有的规则看起来OK。

好像你需要启用它在默认情况下禁用ARR的代理转发功能,REWRITE_DISABLED_KERNEL_CACHE也给出了一个关于它的线索。

启用代理转发;在服务器上打开提升的命令提示符并输入以下命令。

appcmd.exe set config -section:system.webServer/proxy /enabled:"True" /commit:apphost 

或者看看Creating a Forward Proxy Using Application Request Routing

+0

好亲切,就是这样。一个人怎么知道这个东西? – InteXX

+0

他们受苦受难。现在你是其中之一:) –

+0

大声笑我想是这样的:-) – InteXX