Mein Ziel ist es, einen PDF-Datei-Stream zurück zum Client zu senden.WCF Streamed PDF Antwort
So in WCF Seite habe ich:
public interface IPersonalPropertyService
{
[OperationContract]
Stream GetQuotation();
}
public class PersonalPropertyService : IPersonalPropertyService
{
public Stream GetQuotation()
{
var filePath = HostingEnvironment.ApplicationPhysicalPath + @"Quotation.pdf";
var fileInfo = new FileInfo(filePath);
// check if exists
if (!fileInfo.Exists)
throw new FileNotFoundException("File not found");
FileStream stm = File.Open(filePath, FileMode.Open);
WebOperationContext.Current.OutgoingResponse.ContentType = "application/pdf";
return stm;
}
}
Der Konfigurationsteil ist wie folgt:
<system.serviceModel>
<client>
<endpoint
binding="basicHttpBinding"
bindingConfiguration="StreamedHttp"
contract="IPersonalPropertyService" >
</endpoint>
</client>
<bindings>
<basicHttpBinding>
<binding name="StreamedHttp" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"
transferMode="Streamed">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
nun auf der Client-Seite (zB Konsole app), wenn ich den Dienstverweis erstellen, Ich würde erwarten, meine basicHttpBinding StreamedHttp-Konfiguration zu sehen, aber stattdessen wird die folgende Konfiguration generiert:
und ich rechne damit, dass wegen diesem Grund sage ich eine Ausnahme Protocol bekommen
Der Inhaltstyp application/pdf der Antwortnachricht nicht Spiel der Inhaltstyp der Bindung (text/xml; charset = utf-8).
Wie kann ich den Client zwingen, die auf der WCF-Seite definierte gestreamte Konfiguration zu akzeptieren?
Vielen Dank
Was erhalten Sie, wenn Sie in Browsern "http: //....../ GetQuotation" eingeben? – Eser
Ich habe die web.config geändert, um mit dem Browser zu interagieren, und jetzt, wenn ich http: //..../PersonalPropertyService.svc/GetQuotation mache, bekomme ich: Methode nicht erlaubt. – Nostradamus
Ich konnte nie WCF Conf-Dateien lesen, aber wenn Sie interessiert sind, kann ich einen selbst gehosteten WCF-Server basierend auf WebServiceHost, der Dateien – Eser