【发布时间】:2011-08-12 22:54:04
【问题描述】:
我正在构建一个简单的 HTTP 文件服务器。
我有一个公开 WCF 服务 (FileService.svc) 的 asp.net Web 应用程序。
服务合同是:
[OperationContract]
[WebGet(UriTemplate = "/*")]
Stream HandleFileRequest();
服务实现非常简单,基本上我使用:
WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri
获取要返回的文件的路径(需要一点解析来提取它)。
例如,当在 IIS 上本地托管应用程序时,我可以从以下位置请求文件: http://localhost:65000/FileService.svc/someFolder1/someFolder2/someFile1.jpg
从 silverlight 应用程序内部发出此请求时,问题就开始了。 Silverlight 在 http://localhost:65000/clientaccesspolicy.xml
中搜索 clientaccesspolicy 文件
问题是现在,这个请求不会到达服务,因为 FileService.svc 从 url 中被省略了。
(我希望所有文件请求都由 HandleFileRequest() 中的 WCF 服务处理,而不是任何其他机制。)
我能想到的一个解决方案是使用 IIS 7 的 URL Rewrite 模块。
这是正确的方法,还是有更简单的解决方案?
【问题讨论】:
标签: silverlight iis wcf-rest clientaccesspolicy.xml