Avatar billede bjarkekr Nybegynder
01. maj 2006 - 09:49 Der er 27 kommentarer og
1 løsning

kald af java program fra aspx side virker ikke

Hejsa!

Jeg har før weekenden oprettet dette spørgsmål under IIS, men har ingen svar fået, så nu prøver jeg her :)

Jeg har en asp.net side, som kalder et javaprogram. Selve kaldet virker fint, og jeg kan også få værdier tilbage fra java programmet.

Men nu er det sådan at mit javaprogram skal kalde en webservice og lige præcis dette kan det ikke få lov til hvis det bliver kaldt fra min asp.net side. Hvis jeg bare kører programmet fra en dos prompt virker det fint.

Så er det jeg tænker om der kan være noget sikkerhed i IIS der gør at et kaldt program ikke kan kalde en webservice??

Jeg har prøvet at højreklikke på mappen og sætte alle sikkerhedsindstillinger til godkendt.
Avatar billede dr_chaos Nybegynder
01. maj 2006 - 09:53 #1
du skal tilføje aspnet brugeren til programmet under sikkerheds indstillinger.
Avatar billede bjarkekr Nybegynder
01. maj 2006 - 11:58 #2
Det har jeg prøvet.. Skulle jeg mene.. Du mener sikkerhedsindstillinger der fremkommer, hvis man højreklikke på programmet, ikke?
Avatar billede bjarkekr Nybegynder
01. maj 2006 - 12:08 #3
Problemet ligger jo nok i at dette program skal kalde en webservice.. Jeg kan jo godt få lov til at kører det. Jeg har prøvet at udskrive tekst fra mit program til aspx siden. Og programmer stopper så snart det når til webservice kaldet.
Avatar billede bjarkekr Nybegynder
01. maj 2006 - 12:10 #4
Jeg har også prøvet at tilføje administrator gruppen til IUSR brugeren, hvilket selvfølgelig ikke er særlig smart, men det virker heller ikke...
Avatar billede dr_chaos Nybegynder
01. maj 2006 - 13:03 #5
det er ikke iusr bruger men aspnet bruger som du skal tilføje til administrator gruppen.
Avatar billede bjarkekr Nybegynder
01. maj 2006 - 14:09 #6
Den har jeg så også prøvet med, virker heller ikke :(
Avatar billede dr_chaos Nybegynder
01. maj 2006 - 14:11 #7
har du prøvet at nedarve sikkerhedsindstillinger til udnerobjekter ?
Avatar billede bjarkekr Nybegynder
01. maj 2006 - 14:16 #8
hvordan gør man det??
Avatar billede arne_v Ekspert
02. maj 2006 - 01:16 #9
er det korrekt forstået at du har et setup a la:

browser----(HTTP)----ASP.NET side----(socket)----Java server app----(web service)----X

?

ellers må du gerne lige skitsere hvordan dit setup er
Avatar billede dr_chaos Nybegynder
02. maj 2006 - 07:53 #10
når du er inde på sikkerheds indstillinger kan du vælge avanceret og her kan du vælge at erstatter et eller andet på underobjekter.
Avatar billede bjarkekr Nybegynder
02. maj 2006 - 08:02 #11
arne v>

Browser -> HTTP -> ASP.NET -> Shell execute -> Java app -> webservice -> ASP.NET

Forklaring:
En browser viser en asp.net side. Siden kalder et javaprogram på serveren, som kalder en webservice. Output fra java programmet, udskrives på websiden.

Java programmet virker i en dos prompt. Det virker også tildels når det kaldes via min .net side. Jeg får output fra alt andet end mit webservice kald.

Men der bliver IKKE brugt sockets eller noget.
Avatar billede bjarkekr Nybegynder
02. maj 2006 - 09:19 #12
nu har jeg prøvet at installere en pakke sniffer på serveren (ethereal), og kan se at den webservice der skal kaldes IKKE bliver kaldt når programmet kaldes fra asp.net, men virker når det kaldes fra dos prompt.

dr chaos> mener jeg har prøvet alt der er muligt i sikkerhedsindstillinger.

Tænker på om man evt. kan give tilladelser et sted til at en bestemt IP eller host er sikker. For den webservice der kaldes er TDC's PID til CPR test service.
Avatar billede arne_v Ekspert
02. maj 2006 - 13:15 #13
ASP.NET -> Shell execute

lyder tvivlsom

tillader ASP.NET at man spawner eksterne kommandoer ?

hvad er default directory ?

hvad er environment ?
Avatar billede arne_v Ekspert
02. maj 2006 - 13:16 #14
må vi se kommandoen du forsøger at starte det Java program med ?
Avatar billede bjarkekr Nybegynder
02. maj 2006 - 14:53 #15
Det må i da gerne.. :)

Som sagt er der ingen problemer i at få svar fra javaprogrammet, så det er næppe kaldet det er noget galt med.

  proc := Process.Create;
  proc.StartInfo.FileName := InstallRoot+'\jre\bin\java ';
  proc.StartInfo.Arguments := runParam;
  proc.StartInfo.RedirectStandardOutput := true;
  proc.StartInfo.UseShellExecute := false;
  proc.Start;
  i:=0;
  while (not proc.HasExited) do
  begin
    ltcText.Text := ltcText.Text + '<BR>vent venligst...';
    Thread.Sleep(2000);
  end;
  procOut := proc.StandardOutput.ReadToEnd;

procOut bliver til det der ville blive udskrevet på skærmen hvis java programmet bliver kørt i en dos prompt. og det virker. Men når java programmet når til webservice kaldet, stopper output.
Avatar billede bjarkekr Nybegynder
02. maj 2006 - 14:56 #16
InstallRoot er c:\inetpub\wwwroot\osv...
runParam er parametre der sendes med.. virker også
Avatar billede arne_v Ekspert
02. maj 2006 - 15:14 #17
Delphi ...

er der noget i proc.Standarderror ?

angiver du explicit classpath ?
Avatar billede bjarkekr Nybegynder
02. maj 2006 - 15:38 #18
Jeg prøver lige.. 2 sek.
Avatar billede bjarkekr Nybegynder
02. maj 2006 - 15:47 #19
Det ser ud til at være en tom textstream
Avatar billede bjarkekr Nybegynder
02. maj 2006 - 15:47 #20
Ja, jeg angiver en explicit classpath.
Avatar billede arne_v Ekspert
03. maj 2006 - 04:18 #21
har du kilde teksten til Java programmet ?

jeg spekulerer på om det indeholder en

} catch (Exception e) { }

således at vi ikke ser en fejl
Avatar billede bjarkekr Nybegynder
03. maj 2006 - 07:36 #22
ja, jeg har kildeteksten... Og den indeholder vist ikke en try catch.. Tjekker når jeg kommer på arbejde..
Avatar billede bjarkekr Nybegynder
03. maj 2006 - 07:36 #23
Men du er altså HELT overbevist om at det ikke er en sikkerheds ting i IIS eller windows?
Avatar billede arne_v Ekspert
03. maj 2006 - 13:19 #24
Som jeg forstår dig så starter Java programmet op og din ASP.NET side kan læse
output fra det indtil Java programmet skal til at connecte til din web service.

Det antyder jo da at al fil beskyttelsen er OK.

Eneste muligheder for security issues må være hvis:
- den i forbindelse med web service kaldet skal bruge nogle andre file
  (konfiguration filer, jar filer etc.)
- der er en security manager loadet i programmet (men det er normal kun
  applets, RMI applikationer og den slags som har det)

Og selvom en af disse var tilfældes syntes jeg at du burde få en fejl tilbage !

Så jeg er lidt på bar bund.
Avatar billede bjarkekr Nybegynder
03. maj 2006 - 16:56 #25
Det jeg tænker med security er jo at der ER mulighed for kørsel af programmet, men måske har programmet ikke lov til at "gå på nettet", altså kalde en webservice.
Avatar billede bjarkekr Nybegynder
03. maj 2006 - 16:58 #26
Men nu prøver jeg at omskrive hele java programmet, til delphi, da det er noget jeg har mere forstand på. Måske jeg så kan finde ud af hvad der er galt. :)

Uanset hvad, så tak for din tid.
Avatar billede arne_v Ekspert
03. maj 2006 - 17:15 #27
kun hvis der er en security manager
Avatar billede bjarkekr Nybegynder
17. maj 2006 - 14:22 #28
nå, jeg har fundet en anden måde at løse problemet på.. så jeg lukker dette.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester