Arduino MEGA+Ethernet Shield+DHT11. Sends temperature readings to server by GET command. May work fine for couple of days or for an hour. Logging can be restored by pressing RESET. What can be the reason for such faulty behaviour? What to check?
What happens in your code when you lose the connection? Most examples initialize stuff in the setup function. For networking applications this is likely not a good idea, it works for a sketch when you test it, but when you run the application for a long time, things go wrong and then the application is stuck.
Without your source code it is hard to tell how to fix this.
You need to move the entire initialization into the loop, but only execute it when necessary. Then check whether the connection to the server is working and if not, restart the initialization.
What can be the reason for such faulty behaviour?
In most cases it's the software. As you failed to post your code, we cannot help you find the error. My (wild) guess is usage of the String class, resulting in a fragmented memory which then leads to an overwriting of variables.
What to check?
Your sketch!