添加WebAPI项目或使用webHttpBinding?
我想让社区了解以下场景的最佳做法(或优缺点):
我们有一个现有的WCF服务,它通过默认的basicHttpBinding公开
我们现在需要通过AJAX从JavaScript客户端访问服务 - 但是,此客户端运行在不同的应用程序上,因此是不同的域。
因此,需要允许跨源资源共享(CORS)。
我试图决定是否最好:
1)使用webHttpBinding公开另一个WCF端点并更改WCF服务以添加适当的CORS头以允许AJAX请求来自JavaScript客户端的域请参阅本文:https://www.codeproject.com/Articles/845474/启用-CORS功能于WCF
要么
2)将另一个项目添加到WCF解决方案(一个WebAPI项目),然后将WCF项目和WebAPI项目作为底层服务逻辑的精简服务包装。
优点和缺点我看到:
选项1优点: - 不需要向解决方案添加新项目 - 我们可以为WCF服务维护单个服务合同
选项1缺点: - 我们必须添加一个Global.asax文件,并将CORS头添加到响应中,除了支持处理OPTIONS请求外 - WCF不适合支持RESTful特性,例如内容交涉(虽然这不是目前的要求)
选项2优点: - WebAPI更适合支持CORS(我们不必编写特定的代码来添加标题,我们可以通过控制器方法上的属性来实现)
选项2缺点: - 我们需要两个服务接口,一个用于WCF,另一个用于WebAPI,这可能导致这些服务不同步 - 维护问题
还有其他问题吗? 或者,我对两种选择的理解是否被误导?
人们认为什么是最佳实践解决方案?
链接地址: http://www.djcxy.com/p/20409.html上一篇: Add WebAPI Project or use webHttpBinding?
下一篇: XML model binding fails in ASP.net WebApi2 after a time