当前位置: 首页 > 编程语言 > C#

WCFDataService(OData)和CORS分享

时间:2023-04-10 12:50:50 C#

WCFDataService(OData)和CORS我正在尝试使用WCFDataService进行跨域请求。我发现了有关如何将CORS用于WCF服务的信息:http://blogs.microsoft.co.il/blogs/idof/archive/2011/07/02/cross-origin-resource-sharing-cors-and-wcf.aspx我下载了示例但无法使用DataService。它适用于示例服务,但不适用于我的数据服务。这是我非常简单的WCFDataService:publicclassTestService:DataService{publicstaticvoidInitializeService(DataServiceConfigurationconfig){config.UseVerboseErrors=true;config.SetEntitySetAccessRule("项目",EntitySetRights.All);config.DataServiceBehavior.MaxProtocolVersion=DataServiceProtocolVersion.V3;}}TestService.svc文件:DataContext也很简单:publicclassDataContext:DbContext{publicDbSetItems{get;工作?如果您使用的是IIS,请验证ExtensionLess处理程序是否配置为处理OPTIONS请求。一些与您的直接问题无关的注释:由于CORS未得到适当支持,因此您找到的软件包或任何其他解决方案都不会真正令人满意(您将无法轻松指定您的策略)。使用WCF检查器可以创建专业维护的包,但我还没有看到。相反,如果您同意,我想邀请您投票。同时,我只能建议您非常仔细地集成您在网络上找到的任何代码(因为其中大部分未经测试)。这篇文章可能对你有帮助。这与数据服务没有直接关系,但它是相同的WCF技术。也许看看WebAPI实现或其他项目以获取灵感。祝你好运。PS:在90%的情况下,您还想忘记涉及代理的解决方案。在大多数架构中,这很糟糕而且没有多大意义,除非你的边缘后端的设计方式不会让它看起来不那么笨重。更新:还要验证您使用的实现是否正确处理了OPTIONS请求。如果WCF数据服务通过它们,它将返回501,即使标头设置正确,拦截器也可能只是将其传回。由于预检请求不需要文本,一个快速而肮脏的hack将选择那些501s并将它们更改为200s,但显然你真的想首先阻止请求访问数据服务。以上就是C#学习教程:WCFDataService(OData)及CORS分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: