2017-11-21 2 views
0

Kann jemand konfigurieren, wie ein WCF-Dienst von Azure Function aufgerufen wird?Aufrufen von WCF-Dienst in Azure-Funktionen

Szenario:

  • Ich habe ein Projekt azur Funktionen.
  • Ich habe ein Kernprojekt, das aus Controllern und Mappern besteht.
  • Dieses Kernprojekt hat einen verbundenen Dienst konfiguriert.
  • Ich habe den Endpunkt und die Bindung konfiguriert, die von einem Testprojekt funktionieren.

Aber jedes Mal, wenn ich es aus den Funktionen aufrufen i erhalten:

konnte nicht Endpunktelement finden mit dem Namen ‚ABC‘ und Vertrag ‚ABC‘ in der Servicemodel-Client-Konfiguration Abschnitt. Dies liegt möglicherweise daran, dass keine Konfigurationsdatei für Ihre Anwendung gefunden wurde oder dass kein Endpunktelement mit diesem Namen im Clientelement gefunden wurde.

Konfiguration für Service:

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding name="TranslationBridgeWebServiceSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" useDefaultWebProxy="true"> 
     <security mode="None" /> 
    </binding> 
    </basicHttpBinding> 
    <customBinding> 
    <binding name="TranslationBridgeWebServiceSoap12" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"> 
     <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16" messageVersion="Soap12WSAddressingAugust2004" writeEncoding="utf-8"> 
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     </textMessageEncoding> 
     <security authenticationMode="UserNameOverTransport" allowInsecureTransport="false" /> 
     <httpsTransport manualAddressing="false" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" allowCookies="false" authenticationScheme="Anonymous" bypassProxyOnLocal="false" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard" keepAliveEnabled="true" maxBufferSize="65536" proxyAuthenticationScheme="Anonymous" realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false" useDefaultWebProxy="true" /> 
    </binding> 
    </customBinding> 
</bindings> 
<client> 
    <endpoint address="https://abc/TranslationBridgeExternalService.asmx" binding="customBinding" bindingConfiguration="TranslationBridgeWebServiceSoap12" contract="ABC" name="ABC" /> 
    <endpoint address="https://abc/TranslationBridgeExternalService.asmx" binding="basicHttpBinding" bindingConfiguration="TranslationBridgeWebServiceSoap" contract="ABC" name="ABC" /> 
</client> 

Danke für die Hilfe.

Antwort

1

Es gibt keine web.config Datei für Azure Function App (wird ignoriert, wenn Sie es manuell eingeben).

Sie müssten also Ihren WCF-Client erstellen, indem Sie ihn in Code konfigurieren. Implizit alle Bindungen, Endpunkte usw. im Code instanziieren. Für jede WCF-Klasse gibt es immer einen Konstruktor, um eine Entity mit allen Parametern ohne Konfigurationsdateien zu instanziieren.

+0

Wäre es nicht dasselbe wie den Anruf zu einem abhängigen Projekt zu verschieben. Dieses Projekt hat die gesamte Konfiguration, app.config usw. und ruft es nacheinander an? Oder vermisse ich hier etwas. Vielen Dank. :) –

+0

Nein, 'app.config' wird auch nicht abgeholt. Die Konfiguration wird über die Runtime der Funktionen gesteuert. – Mikhail

+0

Ok. Vielen Dank. werde das versuchen. –