Я не думаю, что кэширование файла было бы таким полезным, поскольку оно находится на том же сервере, что и страница, хотя, вероятно, оно автоматически кэшируется IIS. Вместо этого вам следует кэшировать вывод StreamReader . Сохраните XML после прочтения, и тогда вы сэкономите время, затрачиваемое на его чтение, и любую обработку, которую вы выполняете, чтобы получить его в пригодном для использования формате.
Затем вы можете вручную добавить его в HttpRuntime.Cache и даже установить зависимость файла от исходного файла для истечения срока действия кэшированного вывода.