You're right, customer support can be very difficult. I've been both on the customer and vendor side of these relationships, but I think the most insight I have is actually from joining the board of my condominium corporation (like an HOA in the states).

So I don't know exactly how you separate yourself from the emotion, that it feels like a personal attack. And the feeling of wanting to defend what you've created. From my experience in the condo, in some cases it might actually be that you are being personally attacked, and to recognize it. I've had an individual use a fake police badge to intimidate my staff from enforcing parking rules, or been sent emails saying that they'll start spreading lies to all my neighbors if I don't do what they want, when they want, how they want it. There is a percentage of the population, I'm going to say 10-15% that just have no clue how to elicit help and have the person actually want to help you. So just recognize that for some it might be the case.

Also, be clear on what workplace harassment is, it's less of a bar than most people think, or those saying, you're doing support, just live with it. If customers are stepping over the line, I think it's important to realize the impact it has on you and take appropriate actions. In condo land, that means getting lawyers involved when there is actual harassment of staff, which fortunately is rare. But we've gotten things like Death Threats over a delivery to the building.

For some actual advice, here are some tactical items I've deployed to try and diffuse tensions in support:
- Not everything requires an immediate response. If an email frustrates you and you can recognize it, build a cooling off period. Reply in a couple days. This also helps prevent just arguing back and fourth over email, if the cycle always take a couple of days. This might be harder in software support where you want expectations of quick responses, but if an immediate response affects the quality of the response, it can wait a day, an hour, etc.
- Set expectations. If it's a difficult problem and going to take time, don't leave the person on the other end guessing. Tell them the current status of the investigation, and you'll hear from my by end of next week. In condo's, the unit is flooded and the homeowner is living in a hotel. Does the homeowner have reasonable expectations on when they'll be back in their home. The might think everything can be patched in a day, and if they're then left waiting 2 weeks just for contractor bids, they can sit around stewing about how no one does anything. But if you're upfront, we're collecting bids, and will give a status update, it can in some cases diffuse this early.
- Some people will try and draw you into an argument, with big long emails with many, many points. You don't need to go through and counter every point. If you're doing that, you might just be having an argument over email. I try to recognize it and not get drawn into it. Just leave the accusatory stuff out of it, and try and steer the conversation back to point, the actual problem that is being reported and address the noise in the most general way possible.
- Different cultures do react differently. I don't know if it's the case, but if you have lots of customers in a particular culture group, you might just find them use a lot more force in their messaging, or will do things like never admit when something is their fault. So if you do find this and your customers have a different background then you, might be worth checking out whether there is a cultural boundary between you and your customers.
- Repeat problems back in your own words, to make sure you understand the complaint or what the customer is looking for. It's easy to frustrate customers by working on x when they want y.
- Try and place yourself in the customers shoes. In software support I did as an example, our product was a flaming piece of poo. So a customer telling me it's a flaming piece of poo didn't catch me off guard, I agreed with them, and could operate with them on a common ground of how do we move forward together and what I'll be doing to fix their problems.
- Try and be transparent where possible. If there is direct and indirect causes, the answer isn't we just issued a patch. It's a patch for the exact problem will be available on x, but here's our plan to avoid similar and related issues as well. If you write post mortems, write one that's customer facing and share it. I think lots of customer really appreciate transparency. Even if your causing them heartache.

What none of this addresses is the emotion. You described as a feeling of personal attack and getting defensive. I don't know what's the right answer on that key point, because it's likely a natural reaction. Someone is telling you that the thing you poured your soul into is causing them pain, and you will want to defend what you built. So the important tool to find IMO is the tool that let's you break out of that mindset before responding. That this request is not a personal attack (with exceptions of that ones that actually are), and start thinking of it as your mission to solve the problem the customer has, learn from the complaint, and provide a better product as a result.