Doel:
Verbinding maken met de Unit4 Multivers applicatie dmv de Business Connector mbv de DCOM functionaliteit van PHP.
Probleem:
Krijg de melding "Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `MBO.Administration': Klasse is niet geregistreerd".
Wat gedaan:
Ik heb met dcomcnfg.exe de objecten iedereen, network, system en interactive volledig beheer gegeven en ik heb COM aangevinkt. Daarnaast heb ik regsvr32.exe c:\winnt\ubcnnnn.dll gedaan.
Als ik COM ipv DCOM gebruik, werkt het zoals verwacht. Gebruik ik echter de DCOM, dan krijg ik bovenstaande foutmelding. Nu levert PHP op zich geen DCOM problemen, het zit 't 'm dus in de Business Connector.
Verder heb ik verschillende PHP versies geprobeert, via apache en/of CLI.
Vraag:
Heeft iemand misschien een idee waar ik zou kunnen zoeken, of is dit gewoon een hopeloos geval?
B.v.d Roel Bruggink
---------------------------
Testcode:
Exception vardump:
Verbinding maken met de Unit4 Multivers applicatie dmv de Business Connector mbv de DCOM functionaliteit van PHP.
Probleem:
Krijg de melding "Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `MBO.Administration': Klasse is niet geregistreerd".
Wat gedaan:
Ik heb met dcomcnfg.exe de objecten iedereen, network, system en interactive volledig beheer gegeven en ik heb COM aangevinkt. Daarnaast heb ik regsvr32.exe c:\winnt\ubcnnnn.dll gedaan.
Als ik COM ipv DCOM gebruik, werkt het zoals verwacht. Gebruik ik echter de DCOM, dan krijg ik bovenstaande foutmelding. Nu levert PHP op zich geen DCOM problemen, het zit 't 'm dus in de Business Connector.
Verder heb ik verschillende PHP versies geprobeert, via apache en/of CLI.
Vraag:
Heeft iemand misschien een idee waar ik zou kunnen zoeken, of is dit gewoon een hopeloos geval?
B.v.d Roel Bruggink
---------------------------
Testcode:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| $server = '127.0.0.1'; // DCOM //$server = null; // COM try { // Administratie openen $_objAdmin = new COM("MBO.Administration", $server) or die('error'); $_objAdmin->Connect("MVL99999", "SYSTEEM", ""); // haal een enkel debiteur op $deb = new COM("MBO.Customer", $server); $deb->connect($_objAdmin); $deb->load(1001); var_dump($deb->Organization->ShortName); } catch(com_exception $e) { var_dump($e); } |
Exception vardump:
code:
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
| object(com_exception)#2 (6) { ["message:protected"]=> string(80) "Failed to create COM object `MBO.Administration': Klasse is niet g eregistreerd " ["string:private"]=> string(0) "" ["code:protected"]=> int(-2147221164) ["file:protected"]=> string(40) "c:\apache\htdocs\unit4_koppeling\tst.php" ["line:protected"]=> int(10) ["trace:private"]=> array(1) { [0]=> array(6) { ["file"]=> string(40) "c:\apache\htdocs\unit4_koppeling\tst.php" ["line"]=> int(10) ["function"]=> string(3) "com" ["class"]=> string(3) "com" ["type"]=> string(2) "->" ["args"]=> array(2) { [0]=> string(18) "MBO.Administration" [1]=> string(9) "127.0.0.1" } } } } |
[ Voor 13% gewijzigd door Verwijderd op 07-03-2005 13:42 ]