Я предполагаю, что когда вы говорите веб-сервисы ASP.net, вы создаете веб-сервисы с расширением ASMX. Я думаю, что в этом случае происходит то, что все обнуляемые типы становятся необязательными, а не обнуляемые становятся не необязательными.
Возможно, вы могли бы вручную отредактировать сгенерированный файл WSDL. Но тогда вам придется повторить эту работу, если wsdl был восстановлен.
Я бы посоветовал вам переключиться на WCF с помощью baseHttpBinding (за исключением названия вашего сервиса, ваши клиенты не должны замечать разницу).
Используя WCF, вы можете просто пометить параметр в контракте данных как необходимый или нет:
[DataMember(IsRequired="false")]