Silverlight和URL重写 - 他们玩得好吗?

时间:2011-05-18 21:13:59

标签: silverlight iis-7 url-rewriting

我使用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文件。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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