StsAdapter is configured in COM+ to check access at componet level and therefore it will be unavailable to ASP.NET applications from 'Network Service' pool. The solution is very simple - impersonate the calling user. No code. Just turn
<identity impersonate="true"/>
in web.config and rely on the role-based access check that will be performed for calling user!
Other impersonating options are listed here.