Сделайте то, в чем Вы нуждаетесь. Думайте о своем читателе сначала, не волнуйтесь о производительности, пока Вы не уверены, что у Вас есть проблема производительности.
Позволяют компилятору сделать производительность для Вас.
Попробуйте следующее:
<configuration>
<system.web>
<httpHandlers>
<add path="*.xml" verb="*"
type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
</system.web>
</configuration>
В качестве альтернативы вы можете хранить все свои xml-файлы в каталоге App_Data . Файлы любого типа, хранящиеся в этом каталоге, не будут доступны в Интернете.
Другой способ - использовать фильтр запросов:
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".xml" allowed="false" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>