Poziv iz klasičnog ASP-a

Nov 6, 2012 at 12:31 PM
Edited Nov 6, 2012 at 12:36 PM

Pozdrav,

Pokušavam za početak natjerati da proradi ECHO na klasičnoj ASP VBScript stranici.

Sadržaj stranice:

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
dim Probica
Set o = Server.CreateObject("Raverus.FiskalizacijaDEV.COM.CentralniInformacijskiSustav")

Probica =  o.PosaljiEcho("Test")
%>

 

I eto greške:

 

Raverus.FiskalizacijaDEV error '80004003'

Object reference not set to an instance of an object.

/proba.asp, line 6 

 

gdje line 6 nije kreiranje objekta nego pozivanje PosaljiEcho...

ako umjesto o.PosaljiEcho("Test") stavim

o.TestCom("Moj test")

response.Write(Probica)

dobijem ispis "Moj test"

 

ima tko kakvu ideju za ovakvu staromodnu primjenu?

Hvala

Coordinator
Nov 6, 2012 at 12:47 PM

Prema ovome, sigurno je da COM interface radi, da možeš iz ASP-a pozivati taj COM.

No, prvo mi pada na pamet - možeš li iz web browser-a doći do certifikata? Gdje ti je certifikat, u datoteci ili u Certificate Store-u? Imaš li sva potrebna prava?

Nov 6, 2012 at 1:06 PM
Edited Nov 6, 2012 at 1:09 PM

Echo ne koristi certifikat !?

Mislim da je to isto ono s "WebResponse ipakPristigliErrorXmlResponse" koji je "null".

Možda pričekati novu verziju [koja je (skoro pa) obećana danas :)) ] - pa probati onda.

Coordinator
Nov 6, 2012 at 1:10 PM

@mladenbabic: Ups :)  U pravu si za ECHO, no SVAKA komunikacija sa CIS-om ide preko SSL-a, moguće je da je stvar u tome: http://blog.fiskalizacija-dev.com.hr/post/2012/10/14/Kako-preuzeti-i-instalirati-democacert-Verifikacijskiroot-(samopotpisani)-certifikat-za-Demo-CA-.aspx

Ako je ovo drugo na stvari, v1.2. stiže uskoro, ili danas do kraja dana ili odmah sutra.

Nov 6, 2012 at 1:14 PM

A je, bravo, i SSL koristi root certifikat. A to će mu reći vjerojatno i onaj novi "Status".

Coordinator
Nov 6, 2012 at 1:17 PM

Hoće, sigurno, to je bila super sugestija :)

Nov 6, 2012 at 1:19 PM
Edited Nov 6, 2012 at 1:23 PM

A i mene zanima. Ne mogu baš u svom okruženju sve toliko pokvariti da vidim kada se što dešava - pa malo "špijuniram" ovdje :))))

Coordinator
Nov 6, 2012 at 1:21 PM

Da, bilo bi, u stvari, super da službeno testno okruženje ima period kada NE RADI, tako da se i taj scenario može dobro isprobati. Sudeći po statistikama koje mi prikupljamo, ipak veliku većinu vremena sve radi kako treba: https://www.fdev.hr/Status/Status-CIS-Servisa.aspx

Coordinator
Nov 6, 2012 at 1:23 PM

Isprobajte onaj LoadTest bez da upozorite dečke iz APIS-IT... :))))) POstoji velika mogućnost da uživo vidimo situaciju kada CIS ne radi :P

Coordinator
Nov 6, 2012 at 1:26 PM

@dkustec, još uvijek pripremamo teren, bilo bi super ipak to sve napraviti u suradnji sa njima :)

No, i mene zanima "uživo" na stranici sa statusom (gore je link) pratiti kako će se response time povećavati :)

Nov 6, 2012 at 1:32 PM
Edited Nov 6, 2012 at 1:33 PM

"Da, bilo bi, u stvari, super da službeno testno okruženje ima period kada NE RADI"

Da. Nekad programerima sustav koji ne radi vrijedi više od onog koji radi :)))

Coordinator
Nov 6, 2012 at 1:36 PM
Edited Nov 6, 2012 at 2:26 PM

@narasinec, prije ili kasnije će doživjeti jedan DDOS napad.. (i to super ako će biti samo jedan) pa ćete s ovim "dogovorom" moći napraviti mali stress-test, zlu netrebalo... 

ON TOPIC

Što se tiče potpisivanja na ASP.NET produkcijskim platformama:

Potrebno je dodati ROOT certifikat, i FISKAL certifikat u LOCAL MACHINE, a ne myUserAccount. Dakle, kada se otvara SnapIn konzola, (na produkcijskom serveru), mora se otvoriti kao COMPUTER ACCOUNT.

Nakon što se doda ROOT, dodaje se FISKAL.

Zatim se (na već dodani FISKAL) koji se nalazi u Personal/Certifikates, ode na desni klik pa AllTasks i onda odabere ManagePrivateKeys stavka menija.

E sad, potrebo je znati pod kojim se "identitetom" "vrti" asp.net aplikacija (default application pool u kojem je prijavljena). Obično je to "LocalService".

U tabu security (u dialogu Permissions for Fiskal 1 private keys) treba dodati user name: Local Service i dodijeliti joj prava "full control" i "Read". Nakon toga restartati web ili IIS i potpis certifikatom će raditi :)

Evo i jedan mali tutorial na tu temu: http://fiskalizacija.codeplex.com/discussions/402086

Coordinator
Nov 6, 2012 at 1:38 PM
mladenbabic wrote:

Da. Nekad programerima sustav koji ne radi vrijedi više od onog koji radi :)))

Osim kada sustav radi, a ne bi smio raditi i ne zna se zašto radi, a po svim parametrima ne bi smio... 

Ovo mi je gora situacija nego nešto kada noćima "zapne" i ne radi...

Nov 9, 2012 at 9:41 AM
Edited Nov 9, 2012 at 10:43 AM

Hvala na odgovorima!

Međutim, još uvijek imam problem.

Naime:

Na istu mašinu sam instalirao vašu exe verziju i stvar radi vrhunski... generira zaštitni kod, dohvaća jir... ludilo... dakle, komunikacija je dobra, ssl imam... sve pet...

Na istu mašinu registrirao sam i vaš COM dll, o.TestCom("Moj test") vraća "Moj test", dakle dll radi, ali ne radi echo....

ne kužim što ne valja... da ne valja certifikat nebi radio ni exe... itd...

pozdrav

Coordinator
Nov 9, 2012 at 2:36 PM

Da, u pravu si sa ovime, da je problem sa certifikatom, sigurno niti EXE ne bi radio, niti bi mogao dohvatiti JIR. Ako je COM uredno registriran, a čini se da je, ne znam koji bi razlog bio zašto ne radi Echo. Kako sve ovo pozivaš iz ASP-a, jedino mi pada na pamet da je ipak stvar u nekim security postavkama, probaj malo detaljnije proći kroz tutorial koji je postao dkustec, možda si negdje nešto krivo napravio.

Inače, to što EXE radi, ne znači da mora raditi i pozivanje iz ASP-a. Kao sugestija - probaj vidjeti da li ti COM radi ako ga koristiš iz nekog drugog okruženja, na primjer, probaj napraviti malu VB skriptu, na serveru, pa provjeri da li ti tako sve radi, pozovi je direktno (iz command prompta, ne preko ASP stranice). Ako radi, onda znači da je sve u redu sa COM-om i da imaš problem kod pozivanja iz ASP-a - opet dalje - vjerojatno radi nemogućnost dohvata certifikata ili tako nešto.

Coordinator
Nov 9, 2012 at 3:23 PM

Što se tiče ASP-a.. tko god radi u tom okruženju, mora znati da se ASP ne pokreće kao "klasična" aplikacija, pod korisničkim računom onog korisnika koji pokreće aplikaciju, već kao servis koji hendla IIS-om.. stoga, tom servisu mora biti omogućen pristup certifikatu, a ako je to slučaj, onda se poziv certifikata u kodu također mora promijeniti i neće se pozivati iz localuser certifikat storea, već iz localmachine certifikat storea (osim ako IIS nije iskonfiguriran da ga pokreće lokalni korisnički račun, što bi bila ogromna sigurnosna rupa unutar sustava, jer se u tom slučaju IIS pokreće sa svim ovlastima lokalnog usera, koji u pravilu ima admin ovlasti, a to je kao da ostaviš novčanik pun love na tramvajskoj stanici i nadaš se da nitko neće zaviriti u njega...)