我们有一个网站,按流程顺序包含4页:
Default.aspx的
List.aspx
SubmitForm.aspx
Thankyou.aspx
我们使用IIS URL Rewrite模块将PURL用于登陆(默认)页面。所以这个:
www.example.com/Chris123
真的是这样的:
www.example.com/default.aspx?UID=Chris123
在SubmitForm.aspx上,我们有一个带有PostBackURL值的提交按钮,该值将表单数据发送到SalesForce.com的服务器,捕获数据,然后重定向回我们的Thankyou.aspx页面。
过去,我们还没有使用过URL Rewrite模块,而且SalesForce提交工作得很好。但是,现在启用了URL重写规则,当用户单击按钮而不是转到SalesForce服务器时,它会重定向回表单页面,清除字段并触发所有表单验证。这基本上只会导致表单提交/重定向/表单提交/重定向...
如果我进入IIS并禁用用户友好URL规则(仅用于Default.aspx页面),表单将按预期提交给SalesForce。重新打开它,表格再次提交给自己。
我对网页重写没有太多经验 - 只是基本的用户友好类型方案。任何关于在哪里首先探讨的建议都将受到赞赏。
我们正在运行Windows Web Server 2008,应用程序是.NET 4 Web表单。
答案 0 :(得分:0)
好的,想通了。
问题最终是WebResource.axd被URL Rewrite捕获。通过将其添加到规则中来修复它:
<!-- The following condition prevents rule from rewriting requests to .axd files -->
<add input="{URL}" negate="true" pattern="\.axd$" />
我之前读过这篇文章,但是自从PostBackURL转到另一台服务器以来,我认为这不是我的问题。但我想这是有道理的,因为PostBackURL需要Javascript来重定向帖子。我抓住它的原因是因为我的日志文件正在捕获“WebResource.axd”作为我的PURL值,其形式为Referrer。
这是我找到解决问题的实际代码(最后)的页面: http://www.iis.net/learn/extensions/url-rewrite-module/url-rewriting-for-aspnet-web-forms