Hallo,
Ik ben op dit moment bezig met een stuk C# code (ActiveX) wat ik niet aan de praat krijg. Wanneer ik deze code embed in een webpagina krijg ik direct een security exception.
Exception:
System.Security.SecurityException: Request for the permission of type System.Net.SocketPermission, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 failed.
De code zou een luisterende socket op de client moeten openen.
Deze code zou moeten werken (volgens mij) indien ik de dll installeer op de gebruikers PC (met een classid). Maar hoe zou ik dit installeren voor elkaar moeten krijgen?
Ik heb dit probleem al eerder gehad tijdens een vorig projectje van mij met een Shoutbox, het ging toen om code welke alleen lokaal werkte maar niet op een ander systeem welke de webpagina opvraagt (daar had GoT mij toen helaas nog niet mee kunnen helpen). Misschien heeft iemand anders inmiddels een heldere kijk op de zaak.
Ik heb de volgende zaken al uitgeprobeerd, maar tot nu toe tevergeefs:
- een classid meegeven bij embedden van bestand.
- een cab bestand genereren met VS .NET
- een cab bestand maken voor de DLL inclusief .inf bestand met behulp van externe tools
Is er iemand die een werkend voorbeeld heeft van een simpele applicatie in C#, voor een soortgelijke situatie, want ik weet niet precies waar ik de oplossing voor het probleem moet zoeken.
De code:
Als code heb ik een GUI (System.Windows.Forms.UserControl) en een klasse Listener welke door de GUI wordt aangeroepen. De GUI zelf bevat weinig ingewikkelds. De listener code ziet er als volgt uit :
Ik ben op dit moment bezig met een stuk C# code (ActiveX) wat ik niet aan de praat krijg. Wanneer ik deze code embed in een webpagina krijg ik direct een security exception.
Exception:
System.Security.SecurityException: Request for the permission of type System.Net.SocketPermission, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 failed.
De code zou een luisterende socket op de client moeten openen.
Deze code zou moeten werken (volgens mij) indien ik de dll installeer op de gebruikers PC (met een classid). Maar hoe zou ik dit installeren voor elkaar moeten krijgen?
Ik heb dit probleem al eerder gehad tijdens een vorig projectje van mij met een Shoutbox, het ging toen om code welke alleen lokaal werkte maar niet op een ander systeem welke de webpagina opvraagt (daar had GoT mij toen helaas nog niet mee kunnen helpen). Misschien heeft iemand anders inmiddels een heldere kijk op de zaak.
Ik heb de volgende zaken al uitgeprobeerd, maar tot nu toe tevergeefs:
- een classid meegeven bij embedden van bestand.
- een cab bestand genereren met VS .NET
- een cab bestand maken voor de DLL inclusief .inf bestand met behulp van externe tools
Is er iemand die een werkend voorbeeld heeft van een simpele applicatie in C#, voor een soortgelijke situatie, want ik weet niet precies waar ik de oplossing voor het probleem moet zoeken.
De code:
Als code heb ik een GUI (System.Windows.Forms.UserControl) en een klasse Listener welke door de GUI wordt aangeroepen. De GUI zelf bevat weinig ingewikkelds. De listener code ziet er als volgt uit :
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| using System; using System.Net; using System.Net.Sockets; using System.IO; using System.Security.Permissions; public class Listener { private IPAddress localIP; private int localPort = 0; private TcpListener tcpListener; private NetworkStream networkStream; private StreamReader streamReader; private string line; private Socket socketForClient; private GUI gui; public Listener(IPAddress ip, int port, GUI guiObject) { gui = guiObject; localIP = ip; localPort = port; try { tcpListener = new TcpListener(localIP,localPort); gui.ShowLog("tcpListener initalised\n"); } catch(Exception ex) { gui.ShowLog("Exception in Listener:Listener(): " + ex.ToString()); } } public void Listen() { try { tcpListener.Start(); gui.ShowLog("tcpListener started"); //Accepts a new connection... socketForClient = tcpListener.AcceptSocket(); gui.ShowLog("tcpListener Socket Accepted"); if (socketForClient.Connected) { networkStream = new NetworkStream(socketForClient); streamReader = new StreamReader(networkStream); gui.ShowMessage("Client Connected"); while(GUI.appRun) { line = streamReader.ReadLine(); gui.ShowMessage(line); } } socketForClient.Close(); gui.ShowLog("Exiting..."); } catch(Exception ex) { gui.ShowLog("Exception in Listener:Listen(): " + ex.ToString()); } } } |
[ Voor 4% gewijzigd door Verwijderd op 20-06-2005 14:13 ]