Вопрос

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

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

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

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

Обратите внимание, я использую WCF, размещенный в IIS 7.0.

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

Это было полезно?

Решение

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

Ключевые моменты заключаются в том, чтобы:

  • верните поток в вашем интерфейсе
  • установите тип MIME:WebOperationContext.Текущий.Исходящий ответ.ContentType = "приложение / vnd.ms-excel";
  • используйте webHttpBinding и WebHttpBehavior

В MSDN есть полный пример, который возвращает формат JPEG который должен делать именно то, что вы хотите (за исключением изменения MIME-типа JPEG на MIME-тип Excel, как указано выше).

Удачи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top