In genere i servizi di hosting a meno di server dedicati (che in genere si dovrebbero chiamare servizi di housing) non permettono di far girare servizi Windows. Il motivo è presto detto un servizio Windows ha necessità di maggiori privilegi per funzionare. Pertanto come prima cosa mi accerterei se il provider permette di far partire servizi Windows.
In alternativa si può procedere in almeno due modalità con un'applicazione Web (anche in questo caso occorre consultare il provider perchè l'accesso ad una cartella ftp dovrebbe richiedere la modalità "Full Trust"):
1) realizzare una pagina Web che esegue le operazioni necessarie. E demandare ad uno schedulatore esterno la chiamata ogni tot minuti. Come schedulatore esterno una soluzione pratica è quella di uno dei tanti servizi che verificano se un sito è online o meno. Esistono tanti provider per tale funzionalità, gran parte dei quali se l'intervallo non è troppo spinto (in genere superiore a 5-10 minuti), la forniscono gratis. Esempi che ho provato sono
https://uptimerobot.com oppure
https://www.statuscake.com/.
2) Creare la logica del servizio Windows all'interno del Application_Start del global.asax. Ovvero crei un Worker Thread che si addormenta per un tot di tempo e poi esegue le operazioni necessarie per poi rimettersi a dormire. Su internet trovi tanti articoli su come procedere in questo caso. Le considerazioni in questo caso sono che trattandosi di thread secondario vive nel ambito del Web Server, in fase di debug se si interrompe l'esecuzione ma non si interrompe IIS Express continua a girare. Se ci sono errori si possono ribaltare sull'intero Application Pool, con gravi problemi.Altra problemtica è che è difficile da interrompere e non tutti i provider ti permettono di gestire la ripartenza dell'Applicazione e la chiamata della funzione Application_Start (vedi Aruba).
Ovviamente la strada da prendere deve essere scelta in considerazione alle esigenze e a quanto fornito dal provider. Nel mio caso avendo come provider Aruba ho adottato (dopo averle sperimentate entrambe) la prima soluzione, sostituendo lo schedulatore esterno con quello fornito direttamente da Aruba che di base ha una schedulazione con un intervallo minimo di un'ora (ma ponendo più timer sfalsati si riescono ad ottenere intervalli più brevi nel mio caso 3 timer con uno sfasamento di 20 minuti).