Могу ли я использовать службы WCF для загрузки и выгрузки? - PullRequest
2 голосов
/ 21 мая 2011

Я работаю над проектом медиа-сервера для школы, и я выбрал подход WCF для этого. Однако я начинаю задаваться вопросом, является ли это хорошей идеей.

Является ли получение услуг WCF для загрузки и выгрузки файлов простым делом? Проще говоря, я имею в виду то, что не требует большого количества хаков или сторонних библиотек. Также ожидается, что служба WCF будет передавать аудио и видео своим потребителям / клиентам.

Следует также упомянуть, что рассматриваемая служба WCF размещается как управляемая служба Windows вне IIS.

Это то, что я сейчас имею в виду:

    [OperationContract]
    bool AddFile(byte[] filedata);
    [OperationContract]
    bool DeleteFile(int fileid);
    [OperationContract]
    byte[] GetFile(int fileid);

1 Ответ

2 голосов
/ 21 мая 2011

Определите методы для получения и возврата типа данных Stream и обязательно настройте привязку для использования TransferMode.Streamed. Также убедитесь, что вы внимательно относитесь к кодировке, которую вы используете для привязки. Если вы используете Text, все двоичные данные будут закодированы в base64, что приведет к увеличению размера всех ваших запросов / ответов. Если вы используете MTOM, большие двоичные данные, такие как потоки, будут передаваться за пределы тела SOAP как отдельный объект тела HTTP в виде чистых незакодированных двоичных данных. Двоичное кодирование, очевидно, обеспечит наиболее оптимальную передачу по проводам, однако это не стандартный формат, поэтому взаимодействие с другими стеками, отличными от WCF, будет невозможно. Если вы чистый WCF, вы не можете сравниться с производительностью двоичного кодирования сообщений, поэтому я настоятельно рекомендую его или использовать MTOM, если вам требуется взаимодействие.

Кроме того, я до сих пор предположил, что вы пытаетесь сделать это в рамках SOAP. Если вы используете REST, то кодирование XML против MTOM против двоичного кода будет облегчено, потому что вы можете просто отправлять / получать чисто двоичное тело HTTP с соответствующим типом содержимого. Все зависит от того, что вы пытаетесь сделать

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