У меня есть служба WCF-REST, которая возвращает данные в формате JSON, который читает из базы данных в SQLSERVER ... Для возврата простых данных у меня нет любая проблема.
Как вернуть PDF/двоичные данные из базы данных в WCF
Теперь я хочу вернуть файл PDF, который находится в базе данных в поле varbinary (max).
Каков правильный способ возврата данных PDF в службу WCF Rest Service?
[EDITED] Вот как это было предложено. Это класс:
[WebGet(UriTemplate = "/documents/{id}")]
public ActionResult GetDocument(int id)
{
using (var context = new CorrespondenceDataContext())
{
var item = context.DocumentsPDFs.Find(id);
return File(item.Document, "application/pdf", "Document-" + id);
}
}
Сейчас я уже сделал это так же, как предложение, но я предполагаю, что это не совместимо с моим проектом (я немного нового на этом) ...
Первую ошибку : Тип или имя пространства имен «ActionResult» не удалось найти
Вторая ошибка: System.Data.Linq.Table не содержит определения для Find
Третья ошибка: System.IO.File является типом, но используется как переменная
Я попытался добавить System.Web.MVC, но он не появляется. Мой проект - приложение службы WCF ...
Это может очень помочь, если вы действительно включили сообщение об исключении и трассировку стека. Также я НЕ предлагал, что у вас есть. Я предлагал вам использовать ТОЧНЫЙ код, который я вам дал. НЕ завершайте свой двоичный файл в некоторой оболочке base64/JSON/XML. Короче говоря, правильным способом является НЕ использовать API WCF Web (REST) для этого. – Aron
я тоже. Я возвращаю свои данные в формате JSON, потому что у меня есть другое приложение, клиентское приложение для чтения этих данных в этом формате ... – user1600801
А ... Хорошо, я предположил, что у вас есть MVC 4 WebApi Controller с резервным хранилищем EF. Похоже, вы используете LinqToSQL с каким-то самостоятельным классом. Мне нужно знать, что наследует класс, содержащий GetDocument, и какой метод вы используете для «регистрации» его в WPAService. – Aron