IIS重写dosnt允许/中断post请求

IIS重写dosnt允许/中断post请求,post,iis,url-rewriting,url-routing,aar,Post,Iis,Url Rewriting,Url Routing,Aar,我在我的另一个非IIS web服务器前面有一个IIS实例,该服务器托管着一个站点,其中IIS正在执行一些AAR魔术,这很好,但是对于POST请求,由于某些原因,这似乎不起作用,这意味着非IIS web服务器上应用程序的任何ajax调用最终都会中断。有没有办法解决这个问题?下面是当前的规则设置 <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer>

我在我的另一个非IIS web服务器前面有一个IIS实例,该服务器托管着一个站点,其中IIS正在执行一些AAR魔术,这很好,但是对于POST请求,由于某些原因,这似乎不起作用,这意味着非IIS web服务器上应用程序的任何ajax调用最终都会中断。有没有办法解决这个问题?下面是当前的规则设置

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpRedirect enabled="false" />
        <rewrite>
            <rules>
                <clear />
                <rule name="UrlWithPimRewrite" stopProcessing="true">
                    <match url="pim.*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{CACHE_URL}" pattern="^(https?)://" />
                    </conditions>
                    <serverVariables>
                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                    </serverVariables>
                    <action type="Rewrite" url="{C:1}://localhost:1512/{R:0}" appendQueryString="true" logRewrittenUrl="true" />
                </rule>
                <rule name="UrlWithoutPIM" enabled="true" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{URL}" pattern="/pim" negate="true" />
                        <add input="{CACHE_URL}" pattern="^(https?)://" />
                    </conditions>
                    <serverVariables>
                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                    </serverVariables>
                    <action type="Rewrite" url="{C:1}://localhost:1512/pim/webaccess" appendQueryString="false" logRewrittenUrl="true" />
                </rule>
            </rules>
            <outboundRules>
                <clear />
                <rule name="RestoreAcceptEncoding" preCondition="NeedsRestoringAcceptEncoding" enabled="true">
                    <match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)" />
                    <action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" />
                </rule>
                <preConditions>
                    <preCondition name="NeedsRestoringAcceptEncoding">
                        <add input="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" pattern=".+" />
                    </preCondition>
                </preConditions>
            </outboundRules>
        </rewrite>
        <urlCompression doStaticCompression="true" doDynamicCompression="true" />
        <directoryBrowse enabled="false" />
        <tracing>
            <traceFailedRequests>
                <add path="*">
                    <traceAreas>
                        <add provider="ASP" verbosity="Verbose" />
                        <add provider="ISAPI Extension" verbosity="Verbose" />
                        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket" verbosity="Verbose" />
                    </traceAreas>
                    <failureDefinitions statusCodes="404" />
                </add>
            </traceFailedRequests>
        </tracing>
    </system.webServer>
</configuration>

首先,尝试在iis中运行失败的请求跟踪。您是否尝试在没有iis arr反向代理的情况下发出post请求?确保应用程序在没有arr反向代理的情况下工作。您可以尝试一些故障排除步骤,如Fiddler跟踪、Winhttp跟踪和netmon跟踪。另外,使用反向代理时,请检查后端网站的日志。是否成功将post请求反向到后端网站?后端服务器是否正确处理请求?或者反向代理没有将某些数据传递到后端网站,从而导致后端网站报告错误?