代码之家  ›  专栏  ›  技术社区  ›  Christian Hagelid

如何调试与(缺少)回发相关的问题

  •  2
  • Christian Hagelid  · 技术社区  · 14 年前

    我已经创建了一个自定义的向导控件,它可以在您处理过程中动态加载用户控件。向导在我测试过的所有环境(PC/MAC)和浏览器中都按预期运行,但是一个客户端报告她无法完成向导。我对这个问题的了解:

    • 对于此用户,它总是在同一向导步骤上失败(不是第一步)
    • 当用户单击步骤中的“下一步”按钮时,控制器报告请求不是回发请求(即IsPostBack()==false),并显示向导的第一页
    • 客户端正在使用Mac,并使用最新版本的Safari访问站点
    • 如果客户端切换到Firefox,甚至只是将Safari中的用户代理切换到Safari之外的其他东西,问题就会消失。

    所以问题是,当客户端到达向导中的某个步骤并单击“下一步”时,控制器只是显示向导的第一步,而不是重新加载该步骤以启动保存事件。

    不会引发异常,windows事件日志也不会显示任何相关的错误/警告。

    我要找的是诊断这个错误的方法。目前,我无法重现客户的行为,但在现场亲眼看到后,我可以确认这绝对是一个有效的问题。

    2010年10月26日更新:

    我们安装了 proxy 以便检索请求和响应。问题是,当运行代理时,客户端似乎不必再出现问题。这种行为对任何人都有意义吗?

    2010年10月27日更新:

    在调查了客户机上的通信量之后,我们注意到响应头包含了一些与客户机端代理相关的条目,并且我们确认他们实际上正在办公室运行squid代理。为了排除这与问题有关,我们让他们关闭,然后再试一次向导。这次没有遇到任何问题!因此代理似乎干扰了请求,导致.NET以某种方式将POST请求记录为非回发。在失败请求的响应头中找到以下行。有谁能评论一下乌贼是如何引起我们正在经历的行为的?我们能做些什么?

    X-Cache:squid-12未命中,ClientSiteProxy未命中

    X-Cache-Lookup:客户端未命中站点代理:3128

    3 回复  |  直到 14 年前
        1
  •  1
  •   Rahul Soni    14 年前

    如果我必须对此进行故障排除,我将首先在客户机上进行fiddler跟踪(www.fiddlertool.com),并查看请求的内容。我不确定Fiddler是否能在Mac上工作,但是任何HTTP监视、网络监视工具都应该是好的。我不怀疑代码的原因是它在所有其他浏览器上都运行得很好,所以代码不应该是坏的。

    可能代码中有什么东西(比如添加cookies等)干扰了特定客户端的浏览器。

    HTH公司, 拉胡尔

        2
  •  1
  •   FosterZ    14 年前

    对麦克来说 HTTPScoop

        3
  •  0
  •   Christian Hagelid    14 年前

    这个问题并没有因此得到解决,但我们最终只是在客户端squid代理中添加了一个异常以绕过我们的网站。这个问题似乎与proxy/IIS/Safari相关,但我们无法进一步跟踪这个问题,只要问题不会在其他地方再次出现,客户机就对这个解决方案感到满意。如果有更多信息,我会发帖的。