Köra .net exefiler på server från klient
Förord
Att skriva program i vb.net forms och köra dessa på sin lokala dator är oftast inga större problem då du har .net framework installerad på den dator som skall köra programmet. Men när du lägger filen på en delad server händer något annat - (CAS) Code Access Security och är CLR's rättighetssystem (Common Language Runtime) som används och då säger programmet stopp. Här ges lite information om hur du får bukt med detta.
Rättigheter ärvs mellan XP och .Net program
Om du kör Windows XP och placerar din exefil på någon delad disk i nätverket lär du få en helt annan bild av det hela. Du kommer troligen få ett felmeddelande där 'security' omnämns som felkälla. Det är inte helt lätt att veta att .net applikationer som skall köras lokalt på en dator har arv på rättigheter och ger dig inte automatiskt dessa rättigheter.
Använd Net Framework 1.x Configuration Wizard
För att ändra din lokala dators rättigheter så du får köra en .net exefil på en shared disk skall du använda dig av ett program som heter Net Framework 1.x Configuration Wizard och finns tillgänglig på din dator om du antingen har installerat Net Framework eller Visual Studio .Net.Antingen kör du det via kommandprompten (kör/run):
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorcfg.msc
Men du finner även programmet via kontrollpanelens Administrationsverktyg. Starta detta program och drilla dig ner i det vänstra trädet:
1. Välj först Runtime Security Policy
2. Välj Machine
3. Välj Code Groups
4. Välj All Code
5. Välj Local Intranet
Nu ser du till höger "LocalIntranet_Zone Code Group"
Till höger finns en länk där det står "Add Child Code Groups". Klicka på denna och gör enligt följande:
1. Skapa en ny code group med exempelvis namnet '.net code'
2. Klicka nästa
3. Välj 'All Code'
4. Klicka nästa
5. Välj 'Full Trust'
6. Klicka Nästa och slutför
Nu skall vi lägga till en grupp till för att säga till att vi får exekvera program i vårt lokala nät som körs på vår lokala disk. Tryck därför återigen på länken "Add Child Code Groups" och gör enligt följande:
1. Skapa en ny code group med exempelvis namnet '.net source'
2. Klicka nästa
3. Välj 'Zone'
4. Välj 'Local Intranet'
4. Klicka nästa
5. Välj 'Full Trust'
6. Klicka Nästa och slutför
Sådär, nu är det faktiskt klart. Nu kan du köra en .net exefil som finns på exempelvis \\server\e$ eller kanske u: utan att du skall få varning om att detta inte stöter sig mot rättigheterna.
Det fungerar inte ändå
Om du får samma felmeddelande i alla fall behöver du inte vara orolig. Tyvärr är det så att om du skrivit programmet och det anväder framework 1.0 måste du också använda programmet Configuration Wizard för 1.0. Har du kompilerat programmet med Frameworket 1.1 använder du således Configuration Wizard för 1.1. Tänk även på att detta måste du göra på varje klient som har Windows XP och skall komma åt ditt program. Tack och lov behöver du bara göra det en gång per användare.
Stefan Håkansson
Jag har suttit i ett par månader och inte fått igång mitt program på det lokala nätverket. Men men denna artikel fungerar all som det var tänkt att fungerar. Jag tackar för artiklen. / Stefan H
Bo Persson
Nu kan jag äntligen komma igång med asp.net