繁体   English   中英

HTTP到HTTPS Silverlight WCF跨域问题

[英]HTTP to HTTPS silverlight wcf cross domain issue

我一直在寻找整个站点和堆栈溢出,我可以解决我的问题。

网络设置

我在暂存环境中的网络方式是,让客户在443端口-https上查看我的Web应用程序,但基础结构在80端口-http上侦听。 因此,当我的应用程序在端口80上彼此通信时,但是当客户端访问站点时,它的端口443相互通信。例如,我从silverlight调用的svc将在端口80上。

我还应该指出,在我的暂存和测试域中:我有一个Web服务器充当我的应用程序服务器的门户; 但这并不重要,因为我能够进行测试。 只是阶段将HTTP转发到HTTPS。

应用

我有一个silverlight xap文件,该文件与使用IIS 6的托管Web应用程序位于同一域中。

现在,由于我的silverlight xap文件和Web应用程序在同一个域中,因此在开发和测试上运行它没有问题,但是当我尝试将其部署到暂存阶段时,我遇到了一个奇怪的跨域引用问题:

“ System.ServiceModel.CommunicationException:尝试向URI请求时发生错误。这可能是由于尝试在没有适当的跨域策略的情况下尝试以跨域方式访问服务或不适合肥皂服务。”

到处挖掘,我意识到我的应用程序认为我的xap(或我正在调用的服务)和我的Web应用程序位于不同的域上,并自动查找crossdomain.xml和clientaccesspolicy.xml文件,我无法真正停下来。 但是,在我的应用程序中并非如此。 它们都位于同一域中。 我曾经使用过提琴手,但与此同时,我没有看到任何有关其他域甚至子域的信息。

浏览器问题

我发现的另一个奇怪的事情是chrome vs的问题,即:在chrome上,它发现crossdomain.xml和clientaccesspolicy.xml告诉我它不安全,然后又从https端进行了另一个获取,表示404错误。 但是,在IE上,我得到302重定向。 在Microsoft的有关clientaccesspolicy.xml的文档中,您不应该对xml文件进行任何重定向; 这里提到了这一点: http : //msdn.microsoft.com/en-us/library/cc838250(v=vs.95).aspx

所以我的问题是,如果我的应用程序和xap在同一个域中,为什么这些xml试图获取? 是否因为我使用DNS而不是IP地址? 我还偶然发现了该站点: http : //msdn.microsoft.com/zh-cn/library/ff921170(v=pandp.20).aspx

它指出:为避免跨域调用问题,远程模块的XAP文件应与主应用程序位于同一域; 像这样部署时,ModuleCatalog上的Ref属性应该是相对于Web服务器上主要XAP文件位置的统一资源标识符(URI)。

那有什么意思??

编辑

好的,因此我将服务更改为指向https而不是http。 但是出现新的错误:提供的URI方案'https'无效; 预期的http。

好消息是,它甚至不检查crossdomain.xml或clientaccesspolicy.xml。 因此它现在意识到它在同一个域中。 但是现在它期望在端口80上有服务,但是名称必须以https://开头才能使其正常工作。

我认为我现在唯一的解决方案是将其分解为一个虚拟目录,使其成为其自己网站的根节点,并将整个内容更改为443。

听起来您正在一个有负载均衡器分担SSL流量的环境中工作。 在这种情况下,需要为HTTPS配置客户端(Silverlight),并且必须为HTTP配置服务器。 这是因为双方之间的设备正在解密SSL数据。

在这种情况下,除了正常的客户端和服务器端配置之外,您的服务器端代码还需要对请求的地址有所了解。

您可能还需要向服务实现中添加一个属性,以允许您的客户端通过HTTPS进行调用,但是让您的服务侦听HTTP。

将此添加到您的服务:

[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]

这使您的客户端可以调用https://my.domain.com/service.svc并使服务器位于http://my.domain.com/service.svc

以下是一些可能也有帮助的链接:

http://social.msdn.microsoft.com/Forums/vstudio/zh-CN/b5ae495b-f5fb-4eed-ae21-2b2280d4fec3/address-filter-mismatch-wcf-addressing

http://www.im-code.com/blog/blog/2011/11/30/hosting-silverlight-over-http-under-f5-big-ip/

http://www.im-code.com/blog/blog/2011/08/18/hosting-silverlight-under-https/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM