我有一个项目托管在两个单独的 iis 服务器上。站点/服务器 1 包含站点的核心,是使用 https 协议的 asp.net。站点/服务器 2 是第 3 方服务器,其中包含我需要从站点 1 引用的 silverlight 应用程序。
站点一有一个用于 silverlight 控件的查看器页面,除了我动态加载 initparams 以指定服务器用户名和一些其他参数之外,这里没有什么特别之处。我遇到问题的地方是在两个服务器都是http的测试环境中,我可以毫无问题地访问xap文件。但是,当我移动到服务器 1(包含查看器)调用服务器 2 上的 xap 文件的开发/生产环境时,silverlight 应用程序将不会加载。我在服务器 2 上有以下 clientaccesspoliy 文件。
<?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>
是否可以进行此调用(https 从 http 中提取 xap 文件)?
我的另一个想法是让两台服务器都使用 https,但是在测试时,因为 iis 服务器证书是自签名的,所以我从 IE 收到一个安全提示,这会导致应用程序超时,因为无法验证信任。
我认为的一个技巧是覆盖证书信任并通过代码将 ti 设置为 true,但我不是这个想法的忠实粉丝。
任何人都可以确认我想要完成的工作是否可行或是否建议不同的实施?
提前致谢
-干杯
更新
由于安全性或 Silverlight,这似乎是不可能的。我现在追求的一个选择是将html和xap文件保留在服务器2上。我没有尝试加载xap文件,而是在调用silverlight控件的链接的单击事件上获取参数,将它们序列化并传递它们作为序列化对象发送到辅助服务器。然后我可以将这些值直接传递给 sl 控件。不是最干净的方法,但它似乎有效。