Toon posts:

[VB .NET] applicatie installeren op server?

Pagina: 1
Acties:
  • 224 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Beste mensen,

Is het mogelijk om een visual basic applicatie te ontwikkelen en deze op een server te installeren, en dus niet op alle clientcomputers?

het .NET framework zal natuurlijk wel op alle PC's geinstalleerd moeten worden, maar onze visual basic applicatie wijzigt zo vaak, dat het lastig is om telkens op alle 20 pc's opnieuw te moeten setuppen.

Ik wil dus eigenlijk zoiets dat je de applicatie alleen op de server installeert, en vanaf de clientcomputer de applicatie op kunt roepen.

Ik maak geen gebruik van webforms, maar van windowsforms, dus een gewone windowsapplicatie.

wie o wie weet raad...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En een soort van autoupdate functie maken, is dat geen optie?

Verder kan je gewoon op de server met bijvoorbeeld TS inloggen en dan de applicatie draaien?

[ Voor 45% gewijzigd door gorgi_19 op 07-08-2003 11:11 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Terminal service is geen optie bij ons helaas.
auto update in het uiterste geval, maar ik wil heel graag weten of het uberhaupt mogelijk is, en of iemand er voorbeelden van weet. ik ken een aantal applicaties waar het wel gewoon mee kan, maar zou het met visual basic .NET domweg gewoon niet kunenn???

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Wij hebben hier een (VB6) app draaien die ook geregeld wijzigt. De app staat op het netwerk en alle client PC's die gebruik moeten (kunnen) maken van de app verwijzen naar die betreffende map. Vooralsnog hebben we er geen problemen mee, tenzij meerdere mensen tegelijkertijd de optie gaan gebruiken waarvoor ze exclusieve toegang tot een tijdelijke tabel nodig hebben, maar dan krijgen ze een nette melding ;)

Lijkt me derhalve geen probleem.

[ Voor 3% gewijzigd door OZ-Gump op 07-08-2003 11:26 ]

My personal website


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Verwijderd schreef op 07 augustus 2003 @ 11:09:
het .NET framework zal natuurlijk wel op alle PC's geinstalleerd moeten worden, maar onze visual basic applicatie wijzigt zo vaak, dat het lastig is om telkens op alle 20 pc's opnieuw te moeten setuppen.
Dit kan je oplossen door n-tier te gaan werken. De business-logica programmeer je in een aparte laag (dll), en vanuit je VB applicatie (GUI-laag), roep je die laag aan (eventueel via remoting als je die dll op een centrale server zet).
Als er iets wijzigt aan je business-logica, dan hoef je enkel die laag te herinstalleren/herdistribueren.
Maar, waarom maak je geen gebruik van een ASP.NET webapplicatie, als die applicatie regelmatig veranderd?

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
OZ-Gump schreef op 07 August 2003 @ 11:25:
Wij hebben hier een (VB6) app draaien die ook geregeld wijzigt. De app staat op het netwerk en alle client PC's die gebruik moeten (kunnen) maken van de app verwijzen naar die betreffende map. Vooralsnog hebben we er geen problemen mee, tenzij meerdere mensen tegelijkertijd de optie gaan gebruiken waarvoor ze exclusieve toegang tot een tijdelijke tabel nodig hebben, maar dan krijgen ze een nette melding ;)

Lijkt me derhalve geen probleem.
In .NET kan je niet zomaar een assembly (exe) uitvoeren die zich op een share bevindt. Dit omwille van security enzo. Als je dat probeert, zal je een securityException krijgen. (Je kan dit wel oplossen hoor, maar ik weet niet zo 1 2 3 hoe. :P )

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Je kunt, als ik het goed heb, een exe compileren zodat deze zich als echte exe gedraagt. Heb daar laatst iets over gelezen in een boek over de overgang van VB6 naar .Net. Als ik straks thuis kom zal ik die app eens opzoeken.

My personal website


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
OZ-Gump schreef op 07 August 2003 @ 11:31:
Je kunt, als ik het goed heb, een exe compileren zodat deze zich als echte exe gedraagt. Heb daar laatst iets over gelezen in een boek over de overgang van VB6 naar .Net. Als ik straks thuis kom zal ik die app eens opzoeken.
Doel je hier op de ngen.exe tool? Die zorgt ervoor dat je applicatie niet meer door de CLR JIT compiler van IL naar native code moet gecompileerd worden.
Die ngen tool gaat de IL code al gaan omzetten naar native code. Ik denk niet dat die security - settings enzo daarmee zullen verholpen zijn.
Ik denk dat je die security settings in je manifest ofzo zult moeten aanpassen.

https://fgheysels.github.io/


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Doel je hier op de ngen.exe tool?
Dat lijkt me wel een belletje te doen rinkelen ja. Hmm... Dan zul je inderdaad aan de slag moeten met die security settings. Wellicht weet google of google groups raad.

Overigens: bestaat de app al, of heb je eventueel een mogelijkheid om het ding in een taal te maken die je de zekerheid geeft dat dit soort dingen goed gaan? Normaal zoek je het natuurlijk uit, maar mocht je een deadline hebben.... :p

[ Voor 36% gewijzigd door OZ-Gump op 07-08-2003 11:47 ]

My personal website


Verwijderd

Topicstarter
de applicatie is al zo goed als af, dus asp.NET is geen optie.
ik ken genoeg applicaties (bijvoorbeeld die in clarion gemaakt zijn) die je gewoon op een netwerkshare kunt zetten met alle dll's erbij, en die je onbeperkt vanuit elke client pc kunt starten (door simpelweg een snelkoppeling naar de exe file te maken)
En ook zo vaak tegelijk als je maar wilt

waarom kan het alleskunnende vb .NET zoiets simpels nu niet?????
toch iets om je vreeeselijk kwaad over te maken?

het idee van whoami om een apparte laag te maken enz snap ik wel, ik moet dan alle functies die een form aanroept in een aparte laag zetten en die als aparte applicatie op de server installeren. maar dan nog heb ik op elke pc een client die ik moet installeren, terwijl ik dat dus juist niet wil!!!!

ik heb nu nog steeds geen antwoord en of voorbeelden of het kan of niet, ik hoop het juiste antwoord nog tegen te komen!
Bij voorbaat dank

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 13:00

NetForce1

(inspiratie == 0) -> true

Is het geen optie om de installatie vanaf de server plaats te laten vinden, via een logon-script ofzo? Je hoeft dan niet alle pc's langs, terwijl het toch overal opstaat.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Verwijderd

Topicstarter
jaja, dat is hetzelfde als de eerste reply op min vraag
dus jij wilt stiekum toch op elke pc de applicatie zetten, maar dat is niet de bedoeling...

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 13:00

NetForce1

(inspiratie == 0) -> true

Verwijderd schreef op 07 August 2003 @ 13:00:
jaja, dat is hetzelfde als de eerste reply op min vraag
dus jij wilt stiekum toch op elke pc de applicatie zetten, maar dat is niet de bedoeling...
Daar heb je gelijk in. Maar ik dacht dat je bedoelde dat je het lastig vond om alle pc's langs te gaan, en dat is op deze manier niet nodig.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • JohanDM
  • Registratie: Augustus 2002
  • Laatst online: 16-07-2021

JohanDM

Optimist

Je kan een stub VB.NET programma op de client installeren, die de assembly van de netwerk share laad en uitvoert. Voorbeelden hierven kan je vinden op GotDotNET
Er is ook een voorbeeld dat security rechten instelt voor je assembly te starten.
Misschien dat je ook van de Smart Client technologie gebruik kan maken

"Two things are infinite: the universe and stupidity. And the former I'm not so sure about." -- Albert Einstein


Verwijderd

Topicstarter
hmmm
Die laatste 3 opties moet ik maar eens verder uitspitten!
Bedankt voor de tips.

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Misschien een optie om er een 2e exe file bij te maken die bij het starten de eigenlijke exe van de server kopieert en vervolgens in de eigen map erbij zet en vervolgens opstart. Je kan hier eventueel nog een controle op uitvoeren met het versie nummer van de exe file die lokaal staat en die op het netwerk staat. Is de versie op de server nieuwer kopieer je die lokaal.

Na de kopieer/controle actie start je de eigenlijke exe op en sluit je de zojuist gestartte.

De "update" exe verandert nooit als je die goed maakt. Het maakt door die kopieer actie niet uit hoe vaak je andere/eigenlijke exe verandert omdat je toch altijd de laatste lokaal kopieert.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Heb je het al eens geprobeerd om de exe vanop een share uit te voeren? WElke exception wordt er gethrowed?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Ik hoor van mijn collega dat hij nu ook de broncode op een share heeft gezet, en vanuit een andere pc met visual studio de solution heeft geprobeerd te laden en vervolgens te runnen.
ik krijg dan de volgende melding:

... en toen wist ik niet hoe je een plaatje kunt invoegen in dit forum.

help

Verwijderd

Topicstarter
Dit is de foutmelding:

(hopelijk zien jullie het plaatje hieronder)

[img]c:\SecurityError_tdo_op_server.jpg[/img]

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 07 augustus 2003 @ 23:23:
Dit is de foutmelding:

(hopelijk zien jullie het plaatje hieronder)

[[url= c:\SecurityError_tdo_op_server.jpg ]afbeelding[/url]]
offtopic:
Sowieso zullen we nooit een plaatje kunnen zien die je lokaal op je harde schijf hebt staan.. Je zult hem moeten uploaden naar bijvoorbeeld de homepagespace van je provider

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
hmm wel raar trouwens dat in jouw qoute ineens een link van is gemaakt, en in mijn bericht niet. zo helpt het nog niks als ik er een www adres intyp.

maar goed, ik typ de fout wel even over:

An unhandled exception of type 'System.Sequrity.SequrityException'
occured in mscorlib.dll

Additional information: Request for the permission of type System.Sequrity.Permissions.FileIOPermission, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKey Token=b77a5c561934e089 failed

verder is in de broncode de volgende regel groen geaccentueerd (De regel waardoor de fout dus is opgetreden):

Me.AccessibleRole = System.Windows.Forms.AccessibleRole.Application

Deze laatste regel is trouwens een door visual studio.NET gegenereerde regel.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Je moet eens de caspol.exe utility bekijken.
Daarmee kan je de security policy van je assembly bekijken enzo.

Als je een .NET programma opstart vanaf een share, dan draait die volgens de LocalIntranet security settings. In die security mode heb je geen FileIOPermission.

https://fgheysels.github.io/


  • sander_g
  • Registratie: Juli 2002
  • Laatst online: 12:51
Microsoft .NET Framework 1.1 Wizards zijn hier ook handig voor. Je kunt de assembly op een share plaatsen en vervolgens via deze wizard (via "Administrative Tools") een security policy op loslaten. Dit moet je wel (eenmalig) doen op de clients, maar daarna niet meer. Je kunt het verder beheren via Microsoft .NET Framework 1.1 Configuration (ook in "Administrative Tools")

Garmin Fēnix 7 Pro | https://www.strava.com/athletes/30783039


Verwijderd

Topicstarter
Ik ben verheugd u mede te kunenn delen dat het gelukt is de applicatie vanaf de server te draaien op de client pc's.
Geen installatie nodig dus op de clientpc's

wel moest ik eerst met commande caspol -security off de hele beveiliging van het framework uitschakelen op elke clientpc.

Omdat ik dat niet zo veilig vond heb ik bij microsoft support gevraagd hoe ik specifiek bepaalde beveiligingen uit kon schakelen.

ik kreeg hierop het volgende antwoord:

It seems that you can configure specific rights for your code access security. To view the list open the Visual Studio Command prompt from START>PROGRAMS>Microsoft Visual Studio .Net>Microsoft Visual Studio .Net Tools> command prompt and then type : caspol

This will give you a list of all the options you can use to configure the security of your environment, for your information

You can view the current listing for you environment by typing : caspol -list

There you will see that for your INTRANET zone that there is only FileI/O READ right
1.2. Zone - Intranet: LocalIntranet
1.2.1. All code: Same site Web.
1.2.2. All code: Same directory FileIO - Read, PathDiscovery

To give your UNC path the correct rights to run (WITH security still set to ON) follow these instructions to create new code group for your UNC path :

1) Please open the Microsoft .Net Framework Configuration utility from Administrative Tools (you will need to do this on every machine that needs to run the application)
2) Expand the Runtime Security Policy node, the Machine node, the Code Groups node, the All_Code node, and then highlight the LocalIntranet_Zone node.
3) In the right pane select Add a new child code group to this code group.
4) Choose Create a new Codegroup, then click Next.
5) In the "Choose the condition type for this code group" list, select "URL".
6) In the "URL" text box, type the path of the share in the following format file:////\\computername\sharename\*
7) Click "Next". On the next page, select "Use an existing permission set", and then select "FullTrust".
8) Click Finish.
9) Restart Visual Studio.

You should be able to run your application from the UNC path with FULL TRUST setting for that URL ONLY, with security still on. If this does not work then you need to adjust this security setting for the LOCALINTRANET

Hope this helps you out with your issue and should allow you to run your application from the URL with security on.

En inderdaad, dit lukte ook.
Nu wil ik alleen nog weten of ik dit soort instellingen allemaal handmatig op mijn clientpc's moet doen, of dat dit ook met een of ander script kan in een of andere taal
Zoals het er nu naar uit ziet moet ik dus wel alle clientpc's handmatig wijzigigen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Je zult dat op iedere client moeten toepassen.

Maar, kan je geen batch - scrippie maken die -mbhv die caspol.exe- de security settings gaat gaan doen?

https://fgheysels.github.io/


Verwijderd

Topicstarter
ja, is gelukt...

met volgende commando:

caspol -machine -addgroup All_Code -url file://z:\* FullTrust -n Testje

Mensen, bedankt!
Pagina: 1