Tuesday 4 November 2008

Azure: Development Storage for those without SQL Express

So if you are like me and you don't have SQL Server Express Edition installed, you might have a couple of issues with the Development Storage in Windows Azure.

If you launch development storage you will get some error about SQL Express edition not being installed.

So how do you get around this

First of all you need to find your DevelopmentStorage.exe.config file, it's located in ("C:\Program Files\Windows Azure SDK\v1.0\bin")

Open it up in notepad or Visual Studio, and change the database server instance (2 places).  I've bolded where you need to change in the sample config below.

If you then start up your development storage all should be okay, once more.

<?xml version="1.0" encoding="utf-8" ?>
<
configuration>
  <
configSections>   
    <
sectionname="developmentStorageConfig" type="Microsoft.ServiceHosting.DevelopmentStorage.Utilities.DevelopmentStorageConfigurationHandler, DevelopmentStorage.Utilities"    />
  </
configSections>
 
  <
connectionStrings>
    <
addname="DevelopmentStorageDbConnectionString"
         connectionString="Data Source=.\SQL2008;Initial Catalog=DevelopmentStorageDb;Integrated Security=True"
         providerName="System.Data.SqlClient" />
  </
connectionStrings>
 
  <
appSettings>   
    <
addkey="ClientSettingsProvider.ServiceUri" value="" />
  </
appSettings>
 
  <
developmentStorageConfig>
    <
services>
      <
servicename="Blob"
               url="http://127.0.0.1:10000/"/>
      <
servicename="Queue"
               url="http://127.0.0.1:10001/"/>
      <
servicename="Table"
               url="http://127.0.0.1:10002/"
                     dbServer="localhost\SQL2008"/>
    
    </
services>
   
    <!--
NOTE: These are preconfigured accounts with well known keys. The purpose of the
      authentication supported by the development storage is simply to allow you to test
      your authentication code. It has no security purpose.
      It is strongly recommended that you DO NOT use your actual storage account or key over here.
      These keys are stored unencrpted on disk and in SQL databases.
    
-->
    <
accounts>
      <
accountname="devstoreaccount1"
               authKey="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
               isAdmin="false"
               contactInfo=""/>
    </
accounts>
  </
developmentStorageConfig>
   
  <!--
 
Use this section to configure logging of  requests and  responses from the development storage
  (http://msdn.microsoft.com/en-us/library/ty48b824.aspx).
 
  The logs go to %LOCALAPPDATA%\DevelopmentStorage\Logs and are named after the date/time when
  the development storage was started.
 
  The default logging level is Critical. You can change this to Information or Verbose for debugging.
 
-->
 
  <
system.diagnostics>
    <
sources>
      <
sourcename="System.Net.HttpListener" switchName="default" >
        <
listeners>
          <
addname="defaultListener"/>
        </
listeners>
      </
source>
    </
sources>
    <
switches>
      <
addname="default" value="Critical"/>
    </
switches>
    <
sharedListeners>
      <
addname="defaultListener"
           type="Microsoft.ServiceHosting.DevelopmentStorage.Utilities.CustomizedTextWriterTraceListener,DevelopmentStorage.Utilities"
      />
    </
sharedListeners>
    <
traceautoflush="true"/>
  </
system.diagnostics>
</
configuration>

2 comments:

Anonymous said...

You will also want to update the DevTableGen.exe.config as well, if you use that tool to create local databases for table storage.

Atul Gupta said...

Thanks. This was very helpful. I wish the developer storage on startup could provide appropriate option, rather than assuming SQLExpress or handle it during installation of the SDK