Ich muss wissen, ob ich einen WCF-Dienst mithilfe von TFTP erstellen kann, um Daten von einem Gerät zu erhalten. Ich weiß, dass ich eine Anwendung mit C# erstellen kann, um dies zu tun, aber ich versuche, es zu einer webbasierten Anwendung zu machen. Auch der WCF muss auf IIS gehostet werden. Ich möchte einen WCF-Dienst verwenden, um eine Verbindung zu starten und dann ein Bild von meinem Gerät zu ziehen. Wenn ich meinen Code ausführe, scheint es kein Problem mit dem SendTo-Befehl zu haben, aber es gibt mir immer eine "System.Net.Sockets.SocketException (0x80004005): Ein Verbindungsversuch ist fehlgeschlagen, weil die verbundene Partei nach einem Punkt nicht richtig antwortete oder fehlgeschlagen, weil der verbundene Host bei System.Net.Sockets.Socket nicht reagiert hat. ReceiveFrom (...). Ist dies, weil ich eine netTcpBinding verwende? Kann ich dies mit einer einfachen HTTP-Bindung tun? ? oder etwas anderes oder vielleicht ist es einfach nicht möglich, diesen Dienst zu erstellen WCF, Gedanken ??Kann ich mit WCF Daten von einem Gerät mit tftp (UDP) abrufen?
Service Code Snippet:
public byte[] ipTftpGet(String xferFileName)
{...
byte[] rcvBuffer = new byte[5200];
....
try
{
ipEndPointFtp = new IPEndPoint(ipAddress, 69);
tftpS = new Socket(ipEndPointFtp.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
remoteEP = ipEndPointFtp;
// Request and Receive first Data Packet From TFTP Server
tftpS.SendTo(sndBuffer, nameLen, System.Net.Sockets.SocketFlags.None, remoteEP);
tftpS.ReceiveTimeout = 1000;
try
{
len = tftpS.ReceiveFrom(rcvBuffer, ref remoteEP);//tftpS.ReceiveFrom(rcvBuffer, ref remoteEP);
rcvBuffer[len] = 0x00;
}
catch (System.Net.Sockets.SocketException ex)
{
xferValid = false;
errMsgStr = ex.ToString();
}
}
Web.config:
<services>
<service behaviorConfiguration="mexBehavior"
name="ComService.ComService">
<endpoint address="ComService" binding="netTcpBinding"
contract="ComService.IComService" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8090" />
<add baseAddress="http://localhost:8080" />
</baseAddresses>
</host>
</service>
</services>