【问题标题】:Silverlight clientaccesspolicy.xml bug? or design?Silverlight clientaccesspolicy.xml 错误?还是设计?
【发布时间】:2011-01-23 16:49:27
【问题描述】:

在客户端访问策略文件的域节点中,您可以为子域或协议指定通配符,但它不会显示为端口。

特别是在开发时,如果所使用的服务托管在第三方上,则从运行在 localhost asp.net 开发服务器上的 silverlight 应用程序的本地调试版本访问节点可以正常工作:

<domain uri="*"/>
<domain uri="http://*"/>
<domain uri="http://localhost:1234"/> 

(其中1234是具体确定的端口号)

但如果在表单中指定它似乎不起作用

<domain uri="http://localhost:*"/>

如果有多个开发人员/项目使用该服务,或者您没有为 asp.net 开发服务器指定端口,这将非常烦人

是否有人知道我只是得到了不正确的格式,还是silverlight 处理客户端访问策略时的错误或疏忽?

【问题讨论】:

    标签: silverlight clientaccesspolicy.xml


    【解决方案1】:

    您描述的行为符合文档,其中指出:

    通配符分为三种类型 允许:

    独立的“*”通配符。这个选项 用于允许访问所有域 相同的方案。 HTTP 服务 将允许所有 HTTP 调用者。 HTTPS 服务将允许所有 HTTPS 调用者。

    “http://*”字面通配符。这 选项明确允许所有 HTTP 调用者,即使这是 HTTPS 服务。

    子域通配符。此选项使用 第一段的通配符 路径(“http://.contoso.com”,对于 例如),它允许所有子域 指定的域。所以对于 例子。 http://web.contoso.comhttp://mail.contoso.com 将是 允许。请注意,uri 路径在哪里 通配符不会作为 前缀(例如http://web..com) 是不允许的。

    http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx

    因此,端口通配符没有任何意义,当您允许主机和域使用通配符时,这(您是对的)没有任何意义。

    【讨论】:

      【解决方案2】:

      解决方法:

      在托管 SL 应用程序的网站的 属性 下,转到 Web 选项卡,然后将 Auto-assign Port 更改为 Specific Port .这样,您可以在 clientaccesspolicy 文件中设置您的 localhost:1234 端口,如您已经说明的那样,并期望无论什么开发人员也使用该项目,都不需要更改端口。

      这不是一个完美的解决方案,因为它总是更好地自动分配而不是在项目中硬设置端口。但它是一个很好的尝试选择。

      【讨论】:

        猜你喜欢
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 2011-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-03
        • 1970-01-01
        相关资源
        最近更新 更多