"i want a webservice that has a function that run forever without need to invoke it, this function check the tcp port forever"
There is a way for it. Create a windows service and let it run 'forever'.
Internally, refer the webservice. Ping/use the webservice function at defined interval like 5 sec or 1 min or x min. This would lead you to run the function automatically for given time.
Have a look here of how to create a windows service:
Simple Windows Service Sample[
^]
Windows Services in Action I[
^]