为什么 IIS 重写我的 URL 查询字符串以组合重复的键?

Why is IIS rewriting my URL query string to combine repeated keys?

我正在使用托管在 IIS 7.5 上的 MicroStrategy 10.3。我正在使用他们的 URL API 到 运行 文档,并更改下拉选择器的值。

IIS 正在通过 302 重定向修改我的查询参数。这个URL:

https://server/MicroStrategy/asp/Main.aspx?Server=XXX&Project=XXX&evt=2048001&src=Main.aspx.2048001&maxWait=-1&documentID=XXX&evt=2048084&src=Main.aspx.oivm.rwb.2048084&ctlKey=XXX&elemList=hXX;XXX&evtorder=2048001%2c2048084&2048084=1&2048001=1

正在 302'ed 到:

https://server/MicroStrategy/asp/Main.aspx?Server=XXX&Project=XXX&evt=2048001%2C2048084&src=Main.aspx.2048001%2CMain.aspx.oivm.rwb.2048084&maxWait=-1&documentID=XXX&ctlKey=XXX&elemList=hXX%3BXXX&evtorder=2048001%2C2048084&2048084=1&2048001=1

(两个不同的 evtsrc 正在合并,MicroStrategy 抱怨 'Event ID 2048001,2048084 is illegal'。)

IIS 是否开箱即用地执行此类操作?这当然 似乎 不太可能。我在应用程序的 IIS 管理器中看不到任何自定义 HTTP 重定向。

IIS 绝对不是罪魁祸首。

MicroStrategy 在自动登录后自行生成 302 重定向。您可能认为企业应用程序不会重写自己的 URL 而导致错误,但您错了。

我通过手动添加登录事件解决了这个问题,URL-将我想调用的两个事件编码到目标键中:

https://server/MicroStrategy/asp/Main.aspx?Server=XXX&Project=XXX&evt=3054&src=Main.aspx.3054&target=evt%3D2048001%26src%3DMain.aspx.2048001%26maxWait%3D-1%26documentID%3DXXX%26evt%3D2048084%26src%3DMain.aspx.oivm.rwb.2048084%26ctlKey%3DXXX%26elemList%3DhXX%3BXXX%26evtorder%3D2048001%252c2048084%262048084%3D1%262048001%3D1