ich eine WCF in einem verwalteten Windows-Dienst entwickelt, basierend auf dieser tutorialAktivieren WCF Anrufe in einer Windows Phone Mango
Dies ist, wie meine Schnittstelle definiert ist:
namespace HomeAutomationWindowsService
{
[ServiceContract]
public interface IHomeAutomation
{
[OperationContract]
string connect();
[OperationContract]
Boolean sendAction(string address, string command);
}
}
Und meine Datei App.config ist wie folgt:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="Unsecured">
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="HomeAutomationWindowsService.HomeAutomationService"
behaviorConfiguration="HomeAutomationServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://192.168.11.178:8000/service"/>
</baseAddresses>
</host>
<!-- this endpoint is exposed at the base address provided by host: http://localhost:8000/service -->
<endpoint address=""
contract="HomeAutomationWindowsService.IHomeAutomation"
binding="wsHttpBinding"
bindingConfiguration="Unsecured" />
<!-- the mex endpoint is explosed at http://192.168.11.178:8000/ mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="HomeAutomationServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Wenn ich von einer Konsole oder einer WPF-App aus anrufe, kann ich die öffentlichen Methoden sehen, aber wenn ich Windows Phone benutze, kann ich nichts sehen.
Was ich tun sollte, um meine WCF oder Windows Phone miteinander kommunizieren zu lassen.
Haben Sie versucht, Service-Referenz hinzuzufügen? Überprüfen Sie diesen Artikel: http://eliasmarkelis.wordpress.com/2011/02/27/windows-phone-7-with-wcf/ –
Haben Sie Ihrer Serviceseite eine CrossDomainPolicy-Datei hinzugefügt? – kroonwijk
In Desktop Silverlight benötigen Sie eine Datei, die angibt, dass Sie auf den Dienst zugreifen können. Es heißt clientaccesspolicy.xml und muss im Stamm der Domäne sein. Möglicherweise wurde dieses Verhalten von Windows Phone übernommen. –