1

我看到一个奇怪的问题,我的 Silverlight 应用程序由于“查询的加载操作失败..”而无法加载,原因是“在 System.ServiceModel.DomainServices.Server.DomainService.ValidateMethodPermissions 拒绝访问”

如果我使用 IE 9 浏览到完全相同的页面,请求就会通过并加载 silverlight 应用程序!这发生在不止一台服务器上,并且它们的 IIS 和 SQL Server 的配置与我们设置的所有其他系统相同。

关闭自定义错误后,我在 Fiddler 中看到以下堆栈跟踪 -

Denied Access@Detail@DomainServiceFaultDomainServices i)http://www.w3.org/2001/XMLSchema-instance@ ErrorCode��@ErrorMessage� Denied Access@IsDomainException�@ StackTrace�r at System.ServiceModel.DomainServices.Server.DomainService.ValidateMethodPermissions(DomainOperationEntry domainOperationEntry, Object entity) at System.ServiceModel.DomainServices.Server.DomainService.ValidateMethodCall(DomainOperationEntry domainOperationEntry, Object[] parameters, List1 validationResults) at System.ServiceModel.DomainServices.Server.DomainService.Query(QueryDescription queryDescription, IEnumerable1& validationErrors, Int32& totalCount) at System.ServiceModel.DomainServices.Hosting.QueryProcessor.Process[TEntity](DomainService domainService, DomainOperationEntry queryOperation, Object[] parameters, ServiceQuery serviceQuery, IEnumerable1& validationErrors, Int32& totalCount) at System.ServiceModel.DomainServices.Hosting.QueryOperationBehavior1.QueryOperationInvoker.InvokeCore(Object instance, Object[] inputs, Object[]& outputs)

该站点位于我信任的站点中。

当我附加到 silverlight 应用程序并调试身份验证过程时,它似乎可以通过并且用户得到验证。但是,当它实际上尝试在此之后对服务运行查询时,它们会因访问被拒绝而失败!

我不知道为什么这在 IE 10 中会有任何不同,任何想法都将不胜感激!谢谢。

4

1 回答 1

1

还没有 100% 证明这一点,但出现了这篇文章中建议的修补程序 - IE10 User-Agent 导致 ASP.Net 不发回 Set-Cookie(IE10 不设置 cookie)解决了这个问题。

似乎 IIS 没有正确处理 IE10 cookie 存在问题,因此最初设置了身份验证 cookie,然后随后被忽略。

我猜我们的机器已经过时了,windows update-wise,因为我认为这个修复程序现在一定已经分发了。但尚未确认。

于 2013-04-15T14:40:27.963 回答