1

我们有一个被调用两次的控制器方法。第一次调用我们得到正确的参数,第二次调用我们没有参数,MVC 引擎抛出异常,因为方法的参数不能为空。

我们之前在使用某些版本的 Safari 时看到过这种行为,它与身份验证有关。使用 Windows 身份验证时,如果 IIS 中的身份验证属性设置为协商和 NTLM,则每个将发送一次 ajax 调用。解决此问题的方法是删除一个(我想我们只是将其保留为 NTLM)。情况并非如此,因为我们在这里使用表单身份验证。

我们在调用 WCF 方法时也看到了类似的行为,这些方法返回的类型是派生的,而不是使用父类上的 KnownType 属性。

我们无法成功地重现这一点(它在客户端机器上很少发生)并且正在寻找任何一般的陷阱。

4

1 回答 1

0

调用两次的原因是 Safari 在 IIS 下使用 Windows 身份验证时存在错误。转到您网站的身份验证设置。右键单击 Windows 身份验证,选择提供程序并删除协商,留下 NTLM 工作正常。我还没有测试过 Kerberos。

此问题仅出现在某些版本的 safari 中。

于 2012-10-16T05:37:58.510 回答