Olen tehnyt ohjelmaani local databasen, mutta kun julkaisen ohjelmani ja yritän asentaa sitä toiselle koneelle tulee seuraava virheilmoitus: "the application required that assembly system.data.sqlserver Ce version 3.5.1.0"
Olen ymmärtänyt että SQL server on jonkinlainen "pilvi palvelu". Tietokanta olisi tuolla serverillä josta ohjelma käyttää tietokantaa, jotta ohjelma ei olisi niin raskas ja päivittäminen on helpompaa?
A)Oliko tuo tulkintani oikein?
B)Googletin ratkaisua tähän ongelmaan ja törmäsin seuraavaan ehdotukseen. 8 DLL. tiedostoa(sqlceer35EN.dll, sqlceqp35.dll, sqlceme35.dll, sqlceoledb35.dll, sqlcese35.dll, sqlcecompact35.dll, sqlceca35.dll, System.Data.SqlServerCe.dll.) pitäisi laittaa Bin\Release kansioon ja sitten lisätä referensseihin System.Data.SqlServerCe.dll. Mistä nuo DLL tiedostot saa?
C)Mikä ero on local databasella ja service based databasella?
D)Ohjelmallani on yksi käyttäjä kerrallaan joten olen ymmärtänyt että Accesin tietokantaa käytettäessä ei tulisi tälläistä ongelmaa. Eli kannattaako minun tehdä Acces tietokanta ja unohtaa nuo errorin ohittamis jutut?
Kiitos vastauksista!
Vai johtuuko eriävästä .Net versiosta?
Niin pitäisikö ohjelman toimia toisella koneella ongelmitta jos olen tehnyt local databasen enkä service based databasea?
Ei. .net version tulee vastata samaa mitä ohjelmasi käyttää. Jos käytät .net 3.5:sen dll:iä, ei vanhemmat luonnollisesti käy.
Se, saatko yhteyden kantaasi riippuu palvelimesi asetuksista, palomuurista, käyttöoikeuksista etc.
A. Aseta kantaan oikeus tunnuksille joita käytät etänä (oletan nyt että et windows identityn läpi tunnista,enivei pitäisi kantaan asettaa lupa, ja ylipäätään lupa ottaa yhteys)
B. Katso että serveri ottaa vastaan tcp yhteyksiä (server configuren kautta)
C. Katso että palvelimesi päästää yhteydet läpi portista johon olet serverisi asettanut kuuntelemaan (palomuurista)
Aihe on jo aika vanha, joten et voi enää vastata siihen.