2009-07-31 5 views
0

Я пытаюсь обслуживать документы Excel, которые я сохранил в базе данных через RSS-канал WCF (пользователь щелкает ссылку в фиде и отправляет конкретный документ Excel).Динамический URL-адрес из веб-службы WCF

Файлы Excel не сидят в каталоге где угодно (в этом случае я мог бы просто указать каждому пользователю статический URL-адрес).

Так что я хотел бы сделать, это иметь динамически сгенерированный URL-адрес в RSS-канале (который укажет идентификатор документа). Когда пользователь нажимает на URI, он переходит к веб-сервису WCF, который десериализует документ Excel из базы данных и отправляет его пользователю (они получат стандартный диалог открытия/сохранения Excel).

К сожалению, я не могу заставить веб-службу отправлять документ, который клиент понимает, является документом Excel. Я полагаю, что мне нужно что-то делать с конечной точкой или некоторыми настройками MIME в IIS или вообще что-то еще, но я не понял, что это такое.

Примечание. Я использую WCF, размещенную на IIS 7.0.

Большое спасибо заранее !!!

+0

Как далеко вы получили это? Почему бы нам не показать код, который обрабатывает ссылку? Каков фактический симптом, «клиент не понимает», не очень подробный. –

+0

Фактический symtom заключается в том, что клиент просто отображает необработанный поток бит в браузере. После того, как я сделаю то, что предложил Тузо, я опубликую некоторые последующие действия. –

ответ

1

Вы не указываете слишком много конкретной информации, но может быть, что вы не задали тип MIME. Не уверен, что вы уже сделали, но вы можете делать то, что хотите, используя WCF Rest Programming Model.

ключевые моменты заключаются в следующем:

  • возвращают поток на интерфейсе
  • установить тип MIME: WebOperationContext.Current.OutgoingResponse.ContentType = "приложение/vnd.ms-первенствовать";
  • использовать WebHttpBinding и WebHttpBehavior

MSDN has a full example that returns a JPEG, который должен делать именно то, что вы хотите (за исключением изменения типа JPEG MIME для типа Excel MIME, как указано выше).

Удачи.

+0

Спасибо Тузо. Это похоже на информацию, которая мне нужна. У меня есть еще одна работа, которую мне нужно сделать в первую очередь, но я получу ее на следующий день или около того и дам вам знать, как это происходит. Опять же, спасибо. –

+0

Тузо это, похоже, сделал трюк. Я возвращал байт [], а не поток, и не устанавливал тип MIME в WCF. Еще раз, спасибо за помощь! –

Смежные вопросы