TFTP를 사용하여 장치에서 데이터를 가져 오는 WCF 서비스를 만들 수 있는지 알아야합니다. 내가 할 C#을 사용하여 응용 프로그램을 만들 수 있지만 웹 기반 응용 프로그램을 만들려고하는 알으십시오. 또한 WCF는 IIS에서 호스팅되어야합니다. WCF 서비스를 사용하여 연결을 시작한 다음 장치에서 이미지를 가져 오려고합니다. 내 코드를 실행할 때 SendTo 명령에 문제가있는 것 같지 않지만 항상 나에게 "System.Net.Sockets.SocketException (0x80004005) : 연결 마침표가 마침표 뒤에 올바르게 응답하지 않았기 때문에 연결 시도가 실패했습니다. 연결된 호스트가 System.Net.Sockets.Socket에서 응답하지 않아서 연결이 실패했습니다. ReceiveFrom (...) netTcpBinding을 사용하고있는 이유는 무엇입니까? 기본 HTTP 바인딩을 사용하여이 작업을 수행 할 수 있습니까? ? 또는 뭔가 다른 아니면 그냥 WCF를 사용하여이 서비스를 만들 수 없습니다, 생각 ??WCF를 사용하여 tftp (UDP)를 사용하여 장치에서 데이터를 가져올 수 있습니까?
서비스 코드 조각 :
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>