Я создаю простой файловый сервер HTTP.
У меня есть веб-приложение asp.net, которое предоставляет службу WCF (FileService.svc).
Договор на обслуживание:
[OperationContract]
[WebGet(UriTemplate = "/*")]
Stream HandleFileRequest();
Реализация сервиса довольно проста, и в основном я использую:
WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri
Чтобы получить путь к возвращаемому файлу (для его извлечения требуется небольшой анализ).
Так, например, при локальном размещении приложения в IIS я могу запросить файл у: http://localhost:65000/FileService.svc/someFolder1/someFolder2/someFile1.jpg
Проблемы начинаются, когда этот запрос выполняется изнутри silverlight приложение.Silverlight выполняет поиск в файле cliententaccesspolicy в http://localhost:65000/clientaccesspolicy.xml
Проблема заключается в том, что теперь этот запрос не будет доставлен в службу, поскольку FileService.svc опущен из URL.
(Я хочу, чтобы все запросы к файлудолжен обрабатываться службой WCF в HandleFileRequest (), а не каким-либо другим механизмом.)
Одно из решений, о котором я могу подумать, - это использовать модуль URL Rewrite в IIS 7.
Это правильный способ сделать это или есть более простое решение?