Is this ARR warning causing my 404?

2019-05-24 10:05发布

I'm getting a 404 during a URL redirect/rewrite, and I'm unable to pin down exactly what's causing it.

The warning is:

REWRITE_DISABLED_KERNEL_CACHE

Here are my rules:

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

The redirect rule seems to be working, as I get tfs.domain.com/tfs in my browser when I browse to tfs.domain.com.

But then I get the 404. I've looked at the Failed Request logs, but they're not revealing much. There's this question, but I'm afraid I'm at an absolute loss as to what the discussion means. Maybe that's the solution to my problem, but I have no idea what they're talking about. It's far over my head, unfortunately.

So... is the ARR warning causing the 404? If not, how can I get to the root cause of this problem?

Compact View

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条回答
冷血范
2楼-- · 2019-05-24 10:27

All your rules look OK.

It seems like you need to enable ARR's proxy forwarding feature which is disabled by default, REWRITE_DISABLED_KERNEL_CACHE also gives a clue about it.

To enable proxy forwarding; open an elevated command prompt on the server and enter the following command.

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

Or have a look at Creating a Forward Proxy Using Application Request Routing.

查看更多
登录 后发表回答