Ist es möglich, einen WCF-Dienst von einer universellen Anwendung aus aufzurufen?WCF-Client in einer universellen App
Ich habe eine Service-Referenz hinzugefügt und der Proxy wurde ordnungsgemäß erstellt. Wenn jedoch NetTcpBinding programmgesteuert erstellt und an den Konstruktor des Proxys übergeben wird, löst das Servicemodell die Ausnahme PlatformNotSupported aus.
Bei der Ausführung der App im Simulator und auf dem lokalen Computer wird dieselbe Ausnahme generiert.
Eine Ausnahme des Typs 'System.PlatformNotSupportedException' aufgetreten in System.Private.ServiceModel.dll wurde aber in Benutzercode
"Diese Operation wird nicht unterstützt"
EndpointAddress address = new EndpointAddress("net.tcp://test:9000/ServicesHost/PublishService");
NetTcpBinding binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.None;
PublishingService.PublishClient proxy = new PublishingService.PublishClient(binding, address);
nicht gehandhabt
Hat jemand ein Beispiel für einen funktionierenden WCF-Client in einem UAP?
EDIT
Es hat etwas mit dem Service ist ein Duplex-Dienst zu tun!
Der ursprüngliche Vertrag:
[ServiceContract(CallbackContract = typeof(IPublishCallback))]
public interface IPublish { }
Nach dem CallbackContract Entfernen des UAP-Client-Attribut kann eine Verbindung erstellen, so grundlegenden WCF funktioniert. Also ich denke, es ist besser, die Frage neu zu formulieren. Ist es möglich, einen Duplex WCF-Client in einer universellen Anwendung zu erstellen?
bearbeiten Servicemodel für den Host
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="netTcpPublishService" openTimeout="00:00:10" receiveTimeout="infinite">
<reliableSession inactivityTimeout="24.20:31:23.6470000" enabled="true" />
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehaviour">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="serviceBehaviour" name="PublishService.Publish">
<endpoint binding="mexHttpBinding" name="mexPublishService"
contract="IMetadataExchange" />
<endpoint address="PublishService" binding="netTcpBinding" bindingConfiguration="netTcpPublishService"
name="netTcpPublishService" contract="PublishService.IPublish" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8004/ServicesHost/PublishService" />
<add baseAddress="net.tcp://localhost:9004/ServicesHost/PublishService" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
Es sollte möglich sein, ich habe es in meiner Anwendung getan (wenn auch ohne etwas an den Proxy-Konstruktor zu übergeben, so könnte nicht anwendbar sein). – Tobbe
ist dies in einer Windows 10 UWP App? –