【问题标题】:Silverlight and URL Rewrite - do they play nice?Silverlight 和 URL 重写 - 他们玩得好吗?
【发布时间】:2011-05-18 21:13:59
【问题描述】:

我有一个使用 IIS7 部署在防火墙后面的 Silverlight 应用程序,我想通过 URL 重写一个公共 URL 来访问它。所以http://someurl.com 会重写为http://internalserver/Default.aspx,这就是我设置规则的方式:

<rewrite>
        <rules>
            <rule name="WebSite_InboundRule" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*" />
                <action type="Rewrite" url="http://internalserver/Default.aspx" appendQueryString="false" />
                <conditions logicalGrouping="MatchAny" />
            </rule>
        </rules>
    </rewrite>

此时(在 ASPX 包装器中将一些相对路径更改为绝对路径后),浏览器从 http://someurl.com 到达 Default.aspx 页面,但随后页面为空白,Silverlight.js 文件是最后一件事到 Fiddler 显示已下载。右键单击该页面会显示 Silverlight 上下文菜单,所以我猜测 Silverlight 插件可以正常加载,但由于某种原因它无法下载 XAP 文件。

非常感谢您对此的任何帮助。

【问题讨论】:

  • 您的 xap 网址是什么样的?查看重写规则,您似乎将所有传入的 url 重写为 internalserver/Default.aspx,包括对 xap 的请求。

标签: silverlight iis-7 url-rewriting


【解决方案1】:

问题在于您将所有入站 URL(包括像 http://someurl.com/MySilverlightApp.xap 这样的 URL)重写为 http://internalserver/Default.aspx。由于这不会返回有效的 XAP 文件,因此您的 Silverlight 应用程序不会加载是有道理的。您需要添加一条规则,将 XAP 文件的请求重定向到这些 XAP 文件的适当内部位置。

【讨论】:

  • 我明白了,所以重写 URL 应该是 http://internalserver/{R:0} 或类似的东西?在这种情况下,我希望 someurl.com 之后的所有内容都附加到 internalserver。
  • 其实我不确定我之前的评论是否准确。请参阅我对 Denis 在问题 cmets 中的评论的回应以进行澄清。
猜你喜欢
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
相关资源
最近更新 更多