You are adding multiple fields on the same sort descriptor, which is overriding the previous value. Instead, you need to specify a new sort descriptor for each field:
searchDescriptor
.Sort(s => s
.OnField("FieldA")
.Ascending()
)
.Sort(s => s
.OnField("FieldB")
.Descending()
)