Since your currency rates may change intra-day, on the mainframe side I would look at developing a mainframe app that notifies a .NET-based currency caching app whenever a currency rate has changed. The easiest approach would be for the mainframe to update a database table that your .NET-based caching app monitors for changes, but your cache will be out of date based on the database monitor interval time you have specified in the caching app.
A better approach would use whatever integration technology is available on the mainframe and have it notify your .NET-based cache app that an currency rate has changed. Your .NET-based currency caching app would then update its cache by reading the mainframe data. Your currency rate web service would be programmed against the .NET-based currency rate cache. This approach would ensure the cached currency rates are always up to date.
Good luck!