COM Object funktioniert nicht auf anderen Rechnern

Bild Microsoft Dynamics NAV 4.xx
(ehem. Microsoft Business Solutions-Navision)

COM Object funktioniert nicht auf anderen Rechnern

Beitragvon Justin Time » 10. Juni 2011 13:32

Hallo zusammen,
ich habe gestern mein erstes COM Object fĂĽr Navision geschrieben.
Leider habe ich dafür keine vernünftige (aktuelle) Anleitung gefunden. Wenn jemand dazu eine hat wäre ich sehr dankbar :wink:

Zu meinen Problem. Ich habe die DLL auf meinem Rechner erfolgreich mit regasm.exe registrieren können und kann die Funktion nun auch in NAV nutzen.
Leider funktioniert das ganze aber nur auf meinem Rechner.
Heute morgen wollte ich dann versuchen, das ganze in einer Kundendatenbank an unserem Entwicklungsserver zu testen. Hier geht es leider nicht.
Registrieren kann ich die DLL. Die zugehörige Codeunit lässt sich dann auch Compilieren. Nur wenn ich die Funktion dann nutzen möchte bekomme ich folgende Fehlermeldung.

FĂĽr das OLE Control oder den Automation Server ...... 'NavAutomation'.Geocoding konnte keine Instanz erstellt werden.
PrĂĽfen Sie, ob das OLE Control oder der Automation Server korrekt installiert und registriert wurde.

Da ich mit dem ganzen Thema sowieso noch nicht so vertraut bin, bringt mich die Fehlermeldung schon allmählich zum verzweifeln.

Entworfen habe ich das ganze ursprĂĽnglich in VB.net mit VS 2010 Professional. Die ich die ausgespuckte DLL aber nicht nutzen konnte, habe ich meinen VB Code in C# Code umgewandelt und in ein Beispiel COM Objekt aus dem Internet kopiert. Das funktioniert nun so an meinen Rechner...

Ich hoffe es kann mir jemand weiterhelfen oder mal eine aktuelle grundsätzliche Anleitung zum erstellen von COM Objekten empfehlen.

Vielen Dank im Voraus schon mal!!
Justin Time
 
Beiträge: 25
Registriert: 9. Januar 2008 11:50

Re: COM Object funktioniert nicht auf anderen Rechnern

Beitragvon JanGD » 10. Juni 2011 13:39

JanGD
 
Beiträge: 1765
Registriert: 19. März 2008 12:33
Arbeitsort: NRW
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013R2

Re: COM Object funktioniert nicht auf anderen Rechnern

Beitragvon MatthiasKönig » 10. Juni 2011 17:27

Ohne das Problem genau zu sehen hier ein paar Hinweise:
- Stell die Komponente auf 32 Bit! Falls der Server eine 64 Bit Maschine ist, laesst er diese dann im WoW Modus laufen (Windows on Windows, nichsts anderes liebe Gamer ;))
- Deregisriere deine Dll nochmal sauber auf der Dev Maschine und installiers neu!
- Achte darauf das du die richtige DLL genommen hast. Falls du dein Projekt auf "released" gestellt hast, speichert er die kompilierte Version in einem anderen Verzeichnis

das sind die Dinge die mir spontan einfallen. Ich hoffe das ich damit evtl. helfen konnte.
Benutzeravatar
MatthiasKönig
Microsoft Partner
Microsoft Partner
 
Beiträge: 421
Registriert: 5. März 2008 08:15
Realer Name: Matthias König
Arbeitsort: MĂĽnster
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics 365

Re: COM Object funktioniert nicht auf anderen Rechnern

Beitragvon SilverX » 10. Juni 2011 20:27

Da die Registrierung ja funktioniert und sich die Codeunit compilieren lässt, kann es nur noch daran liegen, dass die DLL nicht gefunden wird. Versuchs mal im GAC oder auch im Client-Verzeichnis.
Cheers
Carsten


This post is my own opinion and does not necessarily reflect the opinion or view of my employer.
SilverX
Microsoft Partner
Microsoft Partner
 
Beiträge: 1252
Registriert: 16. September 2006 14:07
Realer Name: Carsten Scholling
Arbeitsort: GĂĽtersloh
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013+

Re: COM Object funktioniert nicht auf anderen Rechnern

Beitragvon vsnase » 11. Juni 2011 07:18

Guten Morgen,

1. Hast Du auch alle notwendingen Dateien auf dem Server? Ich meine auch die, auf die Dein Programm verweiĂźt?
2. Warum bist Du nicht bei VB geblieben, wenn C# Dir völlig unbekannt ist?
3. Dein Entwicklungsrechner ist nicht rein zufällig ein Win7-64? Falls ja, dann hatte ich das Problem auch schon. Ich habe dann einfach eine 32-bit VM auf meinem Rechner installiert und das Programm noch einmal darauf kompiliert. Dann klappte es auch mit NAV.
4. In VS2010 gibt es auch Setup-Projekte. Damit kann man solche Sachen auch gut installieren.

Volker
vsnase
 
Beiträge: 1193
Registriert: 24. April 2008 10:06
Wohnort: Aschaffenburg
Realer Name: Volker Strähle
Arbeitsort: Aschaffenburg
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009R2

Re: COM Object funktioniert nicht auf anderen Rechnern

Beitragvon Justin Time » 14. Juni 2011 13:15

Vielen Dank fĂĽr eure zahlreichen Antworten!
Ich hab die Anwendung nun auf 32 Bit umgestellt und es nun auch geschafft, das ganze mit VB zum laufen zu bekommen.
(Ich denke das hat am fehlenden Haken bei "fĂĽr COM-Interop registrieren" gelegen).

Es ist dann immerhin schon einmal auf einem frisch installierten XP auch gelaufen. Auf einem anderen XP Rechner aber nicht.
Hier hat dann der Tip mit neu kompilieren auf einem 32 Bit Rechner geholfen :wink:
Mein Entwicklungssystem ist ursprĂĽnglich wirklich ein Win 7 64 Bit gewesen.

Ich habe aber nun aber noch das Problem, dass es auf Windows Server 2003 und 2008 nicht läuft. Ist aber nötig, da das ganze ja auch am Terminalserver laufen soll...
Die DLL habe ich mit der Regasm.exe registriert wie auf den anderen Maschinen auch.
Fehlermeldung ist die gleiche wie anfangs.

Hat hier vielleicht noch jemand einen Tip fĂĽr mich?
Gacutil.exe habe ich auch schon probiert. Bricht aber mit einem Unknown Error ab...

VG Alex
Justin Time
 
Beiträge: 25
Registriert: 9. Januar 2008 11:50

Re: COM Object funktioniert nicht auf anderen Rechnern

Beitragvon Justin Time » 14. Juni 2011 15:41

Ich habe es nun endlich geschafft und es läuft auch auf den Servern.
Er hatte die DLL anscheinend wirklich nicht gefunden. Ich habe Sie jetzt direkt ins Clientverzeichnis gelegt. Dort wo auch die fin.exe zu finden ist.
Vorher hatte ich nur in den Order 60 (bei NAV2009) oder ins System32 gelegt.

Nun geht es endlich :mrgreen:

Einziges was noch nicht geht, ist vom RTC aus. Ist in diesem Fall zwar noch nicht so wichtig aber ich wĂĽsste trotzdem gerne wieso?

VG Alex
Justin Time
 
Beiträge: 25
Registriert: 9. Januar 2008 11:50

Re: COM Object funktioniert nicht auf anderen Rechnern

Beitragvon SilverX » 16. Juni 2011 22:05

Vielleicht wird die DLL im RTC bzw. NAV Server auch nicht gefunden. Dort hast du 2 verschiedene Verzeichnisse und ggf. zwei verschiedene Rechner auf denen die DLL liegen mĂĽsste/sollte. Ich empfehle ja immer den GAC. DafĂĽr muss die DLL aber mit einem starken Namen versehen sein.

Vielleicht hilft dir dieser Thread weiter: viewtopic.php?f=14&t=2423
Cheers
Carsten


This post is my own opinion and does not necessarily reflect the opinion or view of my employer.
SilverX
Microsoft Partner
Microsoft Partner
 
Beiträge: 1252
Registriert: 16. September 2006 14:07
Realer Name: Carsten Scholling
Arbeitsort: GĂĽtersloh
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013+


ZurĂĽck zu NAV 4.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron