Remover .aspx da URL redirecionando o usuário para a URL sem .aspx é apenas uma parte das soluções.
Se você fizer esse redirecionamento, como o servidor saberá qual script (com extensão .aspx) será executado se a URL não contiver o nome correto (sem a extensão .asp)? Então você tem que adicionar uma regra para corrigir isso. A maneira de fazer isso é criar uma regra que corresponda a qualquer URL, mas que não corresponda a nenhum arquivo ou diretório existente. Se encontrarmos isso, podemos supor que pode ser um link reescrito para uma página ASPX, então nós reescrevemos a URL para adicionar .aspx. Se não for uma página ASPX, resultará em um 404, de qualquer forma.
Para que tudo funcione com o código existente, você precisa reescrever a resposta de suas páginas para remover todas as referências existentes a páginas .aspx para não incluir a extensão. Caso contrário, você receberá muitos redirecionamentos desnecessários e as postagens de formulários em páginas aspx não funcionarão mais.
Por último, mas não menos importante, você precisa desativar a compactação, pois a reimpressão de saída não funciona com a compactação ativada.
Isso tudo resulta nas seguintes regras de reconfiguração para você web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="Remove .aspx from URL" stopProcessing="true">
<match url="(.*)\.aspx$" />
<action type="Redirect" url="/{R:1}" />
</rule>
<rule name="Add .aspx for non-existing files or directories">
<match url="(.*)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/{R:0}.aspx" />
</rule>
</rules>
<outboundRules>
<rule name="Remove .aspx from links in the response" preCondition="Only for HTML">
<match filterByTags="A, Area, Base, Form, Frame, IFrame, Link, Script" pattern="(.*)\.aspx(\?.*)?$" />
<action type="Rewrite" value="{R:1}{R:2}" />
</rule>
<preConditions>
<preCondition name="Only for HTML">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
<urlCompression doStaticCompression="false" doDynamicCompression="false" />
</system.webServer>