Yes, a windows service would be fine. I’d like to use a little library called TopShelve to make a service / console app. Then I’d add NancyFx to expose the service and it’s data (or read it from a shared database).
You also asked if there was a ‘better’ way. You might argue that polling all the IoT devices isn’t a good idea (you might use too many resources). Let them broadcast their reading (when they see fit) to a message queue (most of those little devices like to use MQTT). Then your application should only subscribe to the desired queues and process the data when needed.
solved Port reading application in .Net which is better Windows service or Windows application