自定义域服务失败,但身份验证有效(Silverlight Biz应用程序模板)
我正在IIS服务器上托管Silverlight业务应用程序模板派生的应用程序。我正在使用内置的表单身份验证,它工作得非常好 不幸的是,我添加了一个具有特殊行为的附加服务。如果我远程访问服务器并使用该站点,一切都会正常工作。如果我从另一台电脑连接到站点,身份验证仍然有效,但我的自定义域服务失败,出现以下错误: IE抛出此错误消息: System.ServiceModel.DomainServices.Client.DomainOperationException: 查询的加载操作失败 “获取”。类型异常 'System.ServiceModel.DomainServices.Client.DomainOperationException' 被扔了 我尝试调试该过程并获得了更多信息: System.ServiceModel.DomainServices.Client.DomainOperationException: 查询的加载操作失败 “获取”。远程服务器返回 错误:未找到。--> System.ServiceModel.CommunicationException: My clientaccesspolicy和crossdomain策略位于wwwroot和网站的根目录中,如下所示:自定义域服务失败,但身份验证有效(Silverlight Biz应用程序模板),silverlight,wcf,web-services,cross-domain,wcf-ria-services,Silverlight,Wcf,Web Services,Cross Domain,Wcf Ria Services,我正在IIS服务器上托管Silverlight业务应用程序模板派生的应用程序。我正在使用内置的表单身份验证,它工作得非常好 不幸的是,我添加了一个具有特殊行为的附加服务。如果我远程访问服务器并使用该站点,一切都会正常工作。如果我从另一台电脑连接到站点,身份验证仍然有效,但我的自定义域服务失败,出现以下错误: IE抛出此错误消息: System.ServiceModel.DomainServices.Client.DomainOperationException: 查询的加载操作失败 “获取”。类
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*" />
<domain uri="http://*" />
<domain uri="https://*" />
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
失败的域服务正在使用ADO.NET实体模型。其中的实体与用于身份验证的aspnetdb数据库中的实体相同,并且我已为IIS用户(和管理员,我非常渴望)授予包含该数据库的App_数据文件夹的文件权限
同样,如果在服务器上本地连接,所有服务都可以工作。远程连接时,只有身份验证/注册服务起作用
我已经搜索了两天,尝试了我能找到的每一个解决方案,但似乎都没有成功。任何建议或指导都将不胜感激。虽然这对于您的项目来说已经很晚了,但它可能会帮助其他人。听起来您在对基础数据库进行身份验证时遇到了问题。您可能希望了解在数据库级别发生了什么样的模拟 我遇到了一个类似的问题,结果证明我试图以Sliverlight客户端pc帐户的身份访问数据库,而该帐户在授权帐户中从未存在过(尽管我的身份验证与您的情况完全相同)。更改应用程序池标识为我修复了它(我在加入域的PC上使用网络服务帐户,该域使用Computer$帐户代表您登录) 当您遇到CommunicationException时,您真的想看看InnerException,它会告诉您真正的问题是什么 如果没有异常,则需要在服务器端进行调试(单步服务),以查看引发异常的原因 如果在WCF服务器端引发异常,而未将异常包装到导致通道出现故障的故障中(至少在我有限的经验中),则会发生CommunicationException
希望这对某人有所帮助。虽然这对你的项目来说已经很晚了,但它可能会对其他人有所帮助。听起来您在对基础数据库进行身份验证时遇到了问题。您可能希望了解在数据库级别发生了什么样的模拟 我遇到了一个类似的问题,结果证明我试图以Sliverlight客户端pc帐户的身份访问数据库,而该帐户在授权帐户中从未存在过(尽管我的身份验证与您的情况完全相同)。更改应用程序池标识为我修复了它(我在加入域的PC上使用网络服务帐户,该域使用Computer$帐户代表您登录) 当您遇到CommunicationException时,您真的想看看InnerException,它会告诉您真正的问题是什么 如果没有异常,则需要在服务器端进行调试(单步服务),以查看引发异常的原因 如果在WCF服务器端引发异常,而未将异常包装到导致通道出现故障的故障中(至少在我有限的经验中),则会发生CommunicationException
希望这对某人有所帮助。WCF跟踪对我没有帮助!它给出了一个空洞的信息 最后,, 就我而言
- 我从方法中删除了类似[RequireAuthentication]的属性
- 我从域服务类中删除了[RequireAuthentication](检查所有部分)
- 如果它在本地工作,但在服务器上不工作,则一定是配置问题。在我的例子中,我使用了
函数,该函数在membership.ResetPassword()
中被禁用为enablePasswordReset=falseweb.config
希望帮助别人 WCF跟踪对我没有帮助!它给出了一个空洞的信息 最后,, 就我而言
- 我从方法中删除了类似[RequireAuthentication]的属性
- 我从域服务类中删除了[RequireAuthentication](检查所有部分)
- 如果它在本地工作,但在服务器上不工作,则一定是配置问题。在我的例子中,我使用了
函数,该函数在membership.ResetPassword()
中被禁用为enablePasswordReset=falseweb.config
希望帮助别人 这是迄今为止我发现的最好的东西。我也在找。这是迄今为止我发现的最好的东西。我也在找。