попробуйте использовать команду ng build с href и используйте значение имени виртуального каталога.
ниже правила перезаписи URL:
<rule name="StaticContent" patternSyntax="Wildcard">
<action type="Rewrite" url="public/{R:0}" logRewrittenUrl="true"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
</conditions>
<match url="*.*"/>
</rule>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="server.js"/>
</rule>
<rule name="SocketIO" patternSyntax="ECMAScript">
<match url="socket.io.+"/>
<action type="Rewrite" url="server.js"/>
</rule>
убедитесь, что модуль iisnode установлен.
IIS, Node.js и веб-приложение с IISNode не настроено правильно с виртуальным каталогом
Запуск приложения nodejs / MEAN при настройке виртуального каталога IIS