Serve dynamic data to many clients
1) I am not very familiar with Python, but for the .net application you will likely want to push change notifications to it, rather than pull. The system.net.webclient.downloadstring is a request (pull). As I am not a Python developer I cannot assist in that. 
3) As you are requesting data, it is possible to create some errors of the read/write while updating and reading at the same time. Even if this does not happen your data may be out of date as soon as you read it. This can be an acceptable problem, this just depends of how critical your data is. 
This is why I would do a push notification rather than a pull. If worked correctly this can keep data synced and avoid some timing issues.
I am writing a client-server type application.  The server side gathers constantly changing data from other hardware and then needs to pass it to multiple clients (say about 10) for display.  The server data gathering program will be written in Python 3.4 and run on Debian.  The clients will be built with VB Winforms on .net framework 4 running on Windows.
I had the idea to run a lightweight web server on the server-side and use system.net.webclient.downloadstring calls on the client side to receive it.  This is so that all the multi-threading async stuff is done for me by the web server.
Questions:

Does this seem like a good approach?
Having my data gathering program write a text file for the web server to serve seems unnecessary.  Is there a way to have the data in memory and have the server just serve that so there is no disk file intermediary?  Setting up a ramdisk was one solution I thought of but this seems like overkill.
How will the web server deal with the data being frequently updated,  say, once a second?  Do webservers deal with this elegantly or is there a chance the file will be served whilst it is being written to?

Thanks.