Размещать файлы или потоковые данные в собственной службе WCF (не IIS), которая использует HTTP? - PullRequest
1 голос
/ 24 января 2009

Можно ли размещать пользовательские данные в собственных службах WCF, настроенных по протоколу HTTP, таких как пользовательские файлы HTML или XML, без использования IIS? Я говорю об экземпляре ServiceHost, который создает свои собственные EndPoints / listeners.

У меня есть приложение, которое использует автономный сервис WCF, и у него есть клиент Windows Forms, но я также собираюсь добавить облегченный интерфейс Silverilght, но я не хочу использовать IIS по той же причине, что и Я не хотел использовать полноценный SQL Server - я пытаюсь сделать его самодостаточным без зависимостей IIS. (Да, я знаю, что использование IIS не является наилучшей практикой, поскольку это сделает его несколько менее надежным и менее гибким, но эта функция не является основной частью этого.)

Если это невозможно, мне придется выбирать между полнофункциональным IIS на сервере или полноценным WPF на клиенте, мне было просто любопытно, обнаружил ли кто-нибудь это раньше.

Спасибо

Джон

Ответы [ 4 ]

1 голос
/ 27 января 2009

У меня есть образец приложения, доступного для загрузки здесь, который, помимо прочего, демонстрирует, как размещать или передавать данные из файла для обработки (с помощью атрибута WebGet) требований политики доступа клиентов для клиентов Silverlight 2 RTM, подключающихся к автономному хостингу. WCF сервис.

Решение состоит из примера Silverlight, а также проектов клиента WPF и проекта консольного приложения, который самостоятельно размещает дуплексную службу WCF и создает экземпляр класса, производного от ServiceHost, для предоставления соответствующих конечных точек для различных типов клиентов.

Возможно, это может помочь ...

1 голос
/ 27 января 2009

ОК нашел мой ответ. [OperationContract] имеет свойство WebGet, которому вы можете назначить URL. Метод, с которым связан этот атрибут, может затем вернуть объект Stream.

Пример здесь: предоставление файла кросс-политики как части службы WCF . :)

Теперь я могу использовать Cassini на отдельном порту для обслуживания Silverlight .xap через HTTP и по-прежнему указывать на службу WCF с исходным URL-адресом WCF. Теоретически я мог бы, возможно, в этом отношении даже разместить .xap и содержащий HTML из аналогичного интерфейса WCF, отбросив необходимость в файле политики.

0 голосов
/ 26 января 2009

Будет ли лучше размещение компонента WCF в службе Windows для вашего случая использования?

0 голосов
/ 24 января 2009

Вы просматривали System.Net.HttpListener или даже Cassini ? Возможно, любой из них может дать вам то, что вам нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...