Vista + VS2008 + bestanden/mappen slepen in je project + System.Runtime.InteropServices.COMException

Vorige week wilde ik graag een Rich text editor in m’n Weblog project slepen, dit omdat het een stuk mooier is om in zo’n editor teksten te schrijven dan in een ’normale’ textarea.

Nu bestond de editor in mijn geval uit enkele tientallen mapjes met ieder hun eigen submapjes en bestanden. Ik dus proberen om de gehele hoofdmap te slepen in m’n project in VS2008.

Dit mocht niet echt baten. Iedere keer wanneer ik een map naar m’n Solution Explorer sleepte kon ik de map niet toevoegen. Heel raar, aangezien dit wel gewoon in VS2005 kon worden gedaan.

Het lukte trouwens wel om alleen bestanden in je project te slepen, maar om nou handmatig al die mappen in je project aan te maken gaat zelfs mij wel iets te ver. Na enig onderzoek en navraag kwam iemand met een goede oplossing voor m’n probleem. Ik draaide VS2008 namelijk met elevated privileges, dus als Administrator. De rest van m’n systeem draait gewoon onder m’n ’normale’ account. Waarschijnlijk wordt het slepen van spullen naar applicaties met een ander autorisatie niveau geblokkeerd door Windows Vista. Toen ik m’n VS2008 zonder elevated privileges had opgestart kon ik gewoon vanuit de Windows Verkenner mappen slepen naar m’n Weblog project, precies wat ik wilde dus. Het vervelende is dat wanneer je VS2008 niet als Administrator opstart, is dat je dan geen web applicaties meer kunt opstarten, website projecten daarentegen wel.

Uiteraard is m’n presentatie-laag van m’n weblog een web applicatie. Hierdoor krijg je bij het opstarten een System.Runtime.InteropServices.COMException. Dit probleem is reeds bekend bij Microsoft en wordt naar alle waarschijnlijkheid in Service Pack 1 van VS2008 opgelost volgens Microsoft Connect: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?WT.mc_id=AZ-MVP-5003246&FeedbackID=317124

Dit neemt niet weg dat ik het ene probleem heb ingeruild voor het andere probleem. Na een zoektocht om dit probleem toch op te lossen kwam ik op verschillende sites terecht met eigenlijk allemaal dezelfde teksten. Ze zeggen allemaal dat je de volgende stappen moet ondernemen - Ga naar het scherm om Windows onderdelen te kunnen installeren en verwijderen

  • Klik op Internet Information Services
  • Zet ook een vinkje bij IIS Metabase and IIS 6 configuration combatibility onder IIS 6 Management Compatibility - Zet nog een vinkje bij ASP.NET onder World Wide Web Services –> Application Development Features
  • En nog een vinkje bij Windows Authentication onder World Wide Web Services –> Security

Door nu VS2008 als Administrator op te starten zou je de web applicatie goed moeten kunnen opstarten. Let op, er wordt hier continu gezegd ‘als Administrator’.

Ja, als Administrator werkt het wel ja, maar dat is eigenlijk niet wat je moet willen. Je moet VS2008 gewoon onder je eigen account moeten kunnen draaien, dus zonder die elevated privileges.
Nu had ik weer gewoon m’n VS2008 als Administrator op kunnen starten, maar dan kon ik niet meer mappen en bestanden slepen naar m’n project. Nu doe je dat ook niet dagelijks, maar ik wil het toch kunnen. De enige werkende oplossing die ik heb kunnen ontdekken is om de User Account Control uit te zetten.
Op deze manier start je al je applicaties met dezelfde autorisaties, namelijk als Administrator, en kun je dus nog steeds mappen in je project slepen en je krijg niet meer de foutmelding van de System.Runtime.InteropServices.COMException.

Zelf vind ik het niet een hele mooie oplossing, want de UAC is toch een feature van Vista die ik wel kon toejuichen, maar totdat SP1 er is zal het maar zo moeten.


Share