我使用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文件。
非常感谢任何帮助。
答案 0 :(得分:0)
问题是您要将所有入站网址(包括http://someurl.com/MySilverlightApp.xap之类的网址)重写为http://internalserver/Default.aspx。由于这不会返回有效的XAP文件,因此无法加载Silverlight应用程序。您需要添加一条规则,将XAP文件的请求重定向到这些XAP文件的相应内部位置。