IIS重写dosnt允许/中断post请求
我在我的另一个非IIS web服务器前面有一个IIS实例,该服务器托管着一个站点,其中IIS正在执行一些AAR魔术,这很好,但是对于POST请求,由于某些原因,这似乎不起作用,这意味着非IIS web服务器上应用程序的任何ajax调用最终都会中断。有没有办法解决这个问题?下面是当前的规则设置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>
<?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请求反向到后端网站?后端服务器是否正确处理请求?或者反向代理没有将某些数据传递到后端网站,从而导致后端网站报告错误?