web log di marco mangia

staccato dalla tastiera, dal codice mi aspetto solo che esso non mi perseguiti più
posts - 6, comments - 4893, trackbacks - 10

lunedì 16 maggio 2011

Pubblicare il proprio database Sql Server su Aruba senza FTP: si può!

ovvero come trasformare Aruba in qualcosa di meno odioso, evitandoci copia-incolla, trasferimenti FTP.
La possibilità di poter pubblicare il proprio database tramite MS SQL Database Publishing Wizard  (DPW)
Database Publishing Wizard

mi è sembrato dall'inizio (circa 4 anni fa) qualcosa di estremamente comodo. Solo che tutto quello che avevo era sempre il solito file script sql che puntualmente devo generare, ricopiarlo nella mia cartella Script (se faccio uso di versionamento), poi copia e incolla sulla interfaccia web myLittleAdmin e poi finalmente eseguire lo script.
Uffa.. una seccatura spaventosa, se fai piccole e frequenti modifiche al tuo schema.
Purtroppo in un hosting condiviso a 30 euro all'anno non è possibile avere molto e non è nemmeno possibile connettersi tramite Management Studio (SSMS) o giusto per sognare tramite SQL Compare della Redgate.
Armato di pazienza e un venerdì sera piovoso, ho trovato su codeplex SQL Server Hosting Web Service (and toolkit) tra questi i sorgenti di DataBase Pushing Services 1.1 (DPS) che è la parte di codice lato server. DPS espone alcuni webmethod che vengono chiamati dal client DPW per effettuare la pubblicazione del DB direttamente.

Ho scaricato il progetto e pubblicato sul mio spazio web immediatamente; purtroppo vengono generate diverse SoapException che cercare di risolverle mi ha portato via diverso tempo. Che importa, fuori infuriava la tempesta.
Ad ogni modo la cosa migliore da fare è quella di aprire i sorgenti in VS2010 con target fw2.0 e ricompilare tutto come WebApplication. Non so ancora come, ma non sono comparsi gli errori a runtime durante la pubblicazione del mio DB dal DPW.

Ho seguito i passi che ho trovato Being your own SQL Publishing Services Host e nella guida fornita da godaddy Publishing a Database Using the Database Publishing Wizard che a quanto pare fornisce quel servizio sui propri server a differenza di Aruba.

1) Pubblichiamo sul nostro hostring condiviso e clicchiamo su "More.."
per creare un nuovo provider
Publicazione sull'Host

2) Click su "New.." per crearne uno nuovo:
 
providers

3) il bello viene qui: mettiamo in questo caso un nome fittizio, l'indirizzo del nostro webservice nel mio caso http://www.kamelasa.com/publish.asmx, le credenziali ftp che ci passa Aruba
dettaglio provider

4)  Click di nuovo  "New.." per inserire i dati di connessione al database Sql Server; per il nome del server possiamo inserire l'ip passato da aruba o lanciare il comando select @@SERVERNAME da mylittleAdmin

Connessione database


Dopo aver seguito i passi indicati qui,
l'unica cosa che ho dovuto modificare è stato quello di far ignorare modulo http PublishModule commentando dal web.config :
<add name="Microsoft.SqlServer.Hosting.Service" type="Microsoft.SqlServer.Hosting.Service.PublishModule" /> per non avere il problema (per ora) della basic authentication:
basic authentication

Volevo anche il logging e per questo ho passato il path fisico della cartella public con i  permessi in scrittura che su Aruba ha la forma "d:\inetpub\webs\nomedominioxxx" (xxx è il nome del dominio di primo livello)

Questo tool rimane molto rudimentale, infatti è adatto a ricreare il database, funzionalità avanzate come il compare non sono disponibili. Diciamo che è una GUI comoda per selezionare agevolmente quali oggetti (tabelle, viste, stored procedure) esportare in maniera veloce. Esiste anche il limite maxRequestLength che dobbiamo settare nel web.config.

Posso dire che su Aruba forse è possibile far girare tutto (almeno con SqlServer2005 e fw 3.5), considerato che in rete esistono dei work-around per funzionare Asp.Net-mvc, Nhibernate e i MembershipProvider
Comunque tutto questo mi ha dato lo spunto che forse Open DBDiff lo potrei modificare facendolo parlare tramite questo protocollo a ws sviluppato da microsoft

Publish Service

posted @ lunedì 1 gennaio 0001 00:00 | Feedback (1266) | Filed Under [ asp.net shared-hosting ]

Powered by:
Powered By Subtext Powered By ASP.NET