19 messaggi dal 14 marzo 2001
Ciao a tutti,
sono impantanato in un punto.
Sto facendo un test, un metodo wcf che restituisce come stream un pdf, eseuo la chiamata da pagina aspx e ho il seguente errore:

The content type application/pdf of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly.

Il metodo WCF è il seguente:

public Stream Test(string _SessionID)
{
FileStream stm = null;

try
{ WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-disposition", string.Format("inline; filename={0}","test.pdf"));
WebOperationContext.Current.OutgoingResponse.ContentType = "application/pdf";

stm = File.Open(AppDomain.CurrentDomain.BaseDirectory + "//ExportDoc//test.pdf", FileMode.Open);

return stm;
}
catch (Exception ex)
{
throw new FaultException(ex.Message);
}
}

La lettura da pagina aspx:

Stream a = CEnvironment.Instance.Proxy.Test(CEnvironment.Instance.SessionID);

Non capisco proprio cosa manchi.
Uno è fare un servizio SOAP, dove quello che passa è XML, un conto è farne uno REST. Nel tuo codice vedo un misto: restituisce lo stream (che verrà poi codificato in xml) ma personalizzi gli header cambiando il content type.
Se scegli SOAP togli gli header custom, se scegli REST allora non usare WCF, o almeno lo puoi fare solo se stai usando un WebHttpBinding. Questo vuol dire che dall'altra parte il client non usa il classico "add service reference" ma fa una richiesta http usando WebClient/WebRequest

Ciao

Il mio blog
Homepage
19 messaggi dal 14 marzo 2001
Il mio problema è che intanto non conosco wcf e poi ho voluto utilizzare wsHttpBinding per poter utilizzare OperationContext.Current.SessionId da utilizzare per autenticare i client tra le varie chiamate.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.