 <p>I think the answer is that this is just a bug in the Microsoft IIS API that we have to live with. I've opened a bug report on MS connect which has had 2 upvotes, however MS have shown no interest in this (and I doubt they will any time soon).</p> <p>I don't believe there is a workaround for getting the actual state (as the question asks). Some have suggested that I should probe port 21, but this only tells me if there is <em>an</em> FTP server running, not <em>what</em> FTP server is running (as you can have multiple sites) -- so in some cases, this approach is completely useless.</p> <p>The workaround to <em>stopping and starting</em> the site (which also causes a similar error) is to set auto-start to false on the FTP site and restart IIS (it's not great, but it works just fine).</p>