söndag, januari 17, 2010

Azure Development Storage i SQL Server 2008 R2

Sista tiden har jag utvecklat en hel del mot Windows Azure i Visual Studio 2010 och om man som jag inte gillar SQL Express utan vill använda SQL Server 2008 R2 till Development Storage är det väldigt enkelt att fixa till det. När man startar ett Windows Azure projekt första gången skapas en lokal SQL Server Express-databas med tabeller för köer, blobbar och tabeller. För att istället skapa databasen i en icke-express-variant av SQL Server måste man först själv skapa databasen som behövs med hjälp av ett program i Windows Azure SDK.

I katalogen C:\Program Files\Windows Azure SDK\v1.0\bin\devstore finns filen dsinit.exe. Det är den som exekveras när man startat ett Azure projekt första gången och skapar upp databasen. Starta en command prompt och exekvera dsinit.exe enligt följande för att installera den på default-instasen:
dsinit.exe /sqlinstance:.

Eller om man vill installera den på en namngiven instans:
dsinit.exe /sqlinstance:myLocalInstance

Updatera sedan DSService.exe.config och lägg till attributet dbServer enligt nedan:

<service name="Blob" url="http://127.0.0.1:10000/" dbServer="ComputerName\NamedInstance"/>
<service name="Queue" url="http://127.0.0.1:10001/" dbServer=" ComputerName\NamedInstance "/>
<service name="Table" url="http://127.0.0.1:10002/" dbServer=" ComputerName\NamedInstance "/>

Man kan också använda dsinit.exe om man vill rensa allt innehåll i databasen, dvs tömma köer, blobbar och tabeller med:
dsinit.exe /sqlinstance:myLocalInstance /forceCreate

Det finns en del forum, blogger och liknande som hänvisar till att man ska göra ändringarna i DevelopmentStorage.exe.config men det var det gamla namnet och numera heter den DSService.exe.