Algumas coisas:
Um rewrite
deve ser usado se você quiser transferir para um URL diferente no mesmo site. O módulo de reescrita do IIS pode alterar internamente o URL solicitado e ele pode ser processado no mesmo pipeline de solicitação existente.
Um redirect
é necessário quando você deseja transferir para um site diferente no mesmo servidor ou em um servidor diferente, que é o seu caso.
Ao usar um rewrite
e também um URL absoluto, eu acho que o módulo tenta resolver isso dentro do site existente e não pode, então ele envia um 404.
As condições são adicionais ao URL correspondente, no seu caso você não precisa delas. Sua condição {HTTP_HOST}
é sempre verdadeira, é sua dev-box local e o nome é resolvido para este site (a menos que você queira que ela se comporte de maneira diferente ao usar 127.0.0.1). A condição {URL}
deve ser movida para o padrão:
<rule name="ServerFault" patternSyntax="Wildcard" stopProcessing="true">
<match url="AbcService/*" />
<action type="Redirect" url="http://dev.example.com/AbcService/{R:1}" />
</rule>
A partida analisa tudo após o host slash
(primeira barra após o nome do host)
Ao postar perguntas sobre a reconfiguração da URL aqui, é sempre uma boa ideia postar o XML no web.config
Tudo isso ainda não explica por que o seu método de redirecionamento não funciona? Talvez uma olhada no Fiddler possa ajudar.