Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


En klurig sak om att komma åt processer

Postades av 2003-12-11 09:32:10 - Mikael Sand, i forum asp.net generellt, Tråden har 6 Kommentarer och lästs av 719 personer

Tjena!
Nu var det dags för en riktig "svåring". I alla fall för mig.

Följande sak föreligger:
Jag har en Windows Service som ligger å tickar men nu vill jag låta en annan process komma åt servicen och utföra handlingar i den, utan att stoppa servicen och utan att använda "ExecuteCommand" eftersom den inte kan felrapportera.

I API-världen eller om man så vill C så kan man bygga upp NamedPipes eller arbeta med shared mem och det närmsta jag kommit är följande:

<code>
Dim p() As Process = New Process().GetProcessesByName("msimn")
If p(0).ToString <> "" Then
Dim handle As IntPtr = p(0).Handle
End If

'' Här har jag en referens till processen msimn (Outlook Express)
Dim f As New FileStream(handle, FileAccess.Read)
</code>

Vad jag vill kunna göra är det som jag tror kommer efter. Jag skulle t ex vilja anropa en funktion eller liknande i Servicen så att jag kan stoppa vissa "processer" och resurser som den håller på ett snyggt sätt med felrapportering.

Jag har också tittat på Marshal och Reflection men kan inte riktigt se om de kommer lösa mitt problem.

Behöver du som vill lösa problemet mer uppgifter ger jag dig det hemskt gärna.

//Mikael Sand



Svara

Sv: En klurig sak om att komma åt processer

Postades av 2003-12-11 10:15:34 - Johan Normén

Du kan göra detta med remoting...
Kolla på Remoting i SDKn för .Net för mer info.

Mvh Johan


Svara

Sv: En klurig sak om att komma åt processer

Postades av 2003-12-11 12:53:48 - Mikael Sand

Men handlar inte Remoting om att komma åt processer som t ex ligger å annan maskin eller liknande.

Jag behöver bara komma åt saker som ligger på samma burk och domän och rubbet.

Här är ett annat exempel på kod som jag kommit en bit med, dock får jag ett fel:

<code>
Dim p As New myRunningClass
Dim t As Type = port.GetType()
Dim progID As String = _ System.Runtime.InteropServices.Marshal.GenerateProgIdForType(t)
Dim o As Object = System.Runtime.InteropServices.Marshal.GetActiveObject(progID)
port = o
</code>

Felet inträffar på näst sista raden:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll

Additional information: Objektklassen kan inte bestämmas

//Mikael Sand


Svara

Sv: En klurig sak om att komma åt processer

Postades av 2003-12-11 13:46:59 - Johan Normén

Alltså du öppnar upp så du kan kalla på din service från lokal dator. Servicen är ju typ rätt isolerad från övriga program man bygger, för att kunna styra den förutom med start stop m.m. så kan du med remoting be den köra de metoder du vill köra.
För jag antar att du vill komma åt metoder i den som om det vore en vanlig klass?

Mvh Johan


Svara

Sv: En klurig sak om att komma åt processer

Postades av 2003-12-12 09:32:14 - Mikael Sand

Det stämmer bra på det hela taget, och det ÄR remoting som jag ska fixa det med alltså. Jag får väl ge mig på det med andra ord.

Jag hade funderingar igår på shared events där jag hade en lite "router-komponent" som fixade kommunikation mellan ett program och ett annat. Problemet med den var att det inte gick att få de olika programmen att lyssna på samma event och, antar jag, samma instans av klassen...

//Mikael Sand
Ska nu behärska remoting


Svara

Sv: En klurig sak om att komma åt processer

Postades av 2003-12-12 10:32:05 - Mattias Lindberg

Jag skrev ett exempel på just detta för ett tag sedan och la upp på min website, kolla på http://www.netologi.se/default.aspx?Contents=RemotingWrapper. Jag har skapat en klass som kan sköter själva remoting kommunikationen, så du inte behöver lusa ner din kod med sådant...

Du måste se till att raden "Application.Run(new InfoSenderReceiver());" körs i Starter.cs (och bortkommentera den andra App.Run...), sedan ska det funka. Starta två instanser av programmet, starta receiver på en instans och skicka sedan info till det från den andra instansen.

/Mattias


Svara

Sv: En klurig sak om att komma åt processer

Postades av 2003-12-15 08:55:21 - Mikael Sand

Det ser jäkligt fint ut måste jag säga.

Jag löste remoteing med god hjälp av MSDN och min egen hjärna i fredags. Jag fick en dll som dessutom låg på en annan dator att exekvera under både TCP och HTTP. Jag måste säga att jag kände mig jäkligt stolt :-) även om jag för uppdragets skulle inte behöver ha min dll på en annan server.

Nästa steg, och nu måste jag säga tt jag inte läst din kod ännu, är att se om jag inte kan få events att fungera.
Tanken är lite att låta en client trigga ett event i min service (på servern) och låta servicen ta hand om detta event och i sin tur "rejsa" ett nytt event som klienten kan ta hand om. Är det egentligen rätt väg att gå eller ska jag fixa en callback hos klienten eller bara göra det hela asyncront? Klienten kan inte göra så mycket annat än å vänta i alla fall. I slutänden skulle det förhoppningsvis se ut ungefär som:

<code>
if myRemotService.RequestResourceShutDown("binaryreader")
myRemoteService.ShutDownResource("binaryreader")
else
return "Handlingen kunde inte utföras, försök senare"
end if
</code>

--EDIT--
Jag debuggade igenom koden som du skrivit Mattias och min förstfödda ska heta Mattias, vilket är bra för då tror alla att han är döpt efter min bror :-)

TACK!

Om någon vill ge mig fler tips angående arkitekturen kring remoting så får ni gärna det men nu markerar jag tården som löst.

--EDIT

//Mikael Sand


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 165
27 952
271 704
1 343
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies