Je voulais implémenter le serveur python com en utilisant les extensions win32com. Consommez ensuite le serveur à partir du .NET. J'ai utilisé l'exemple suivant pour implémenter le serveur com et il fonctionne sans problème mais quand j'essaie de le consommer en utilisant C# j'ai FileNotFoundException avec le message suivant "Récupération de la classe COM pour le composant avec CLSID {676E38A6-7FA7-4BFF- 9179-AE959734DEBB} a échoué en raison de l'erreur suivante: 8007007e. " . J'ai aussi posté le code C#. Je me demande si quelque chose me manque, j'apprécierais toute aide.Consommation de serveur COM Python à partir de .NET
Merci, Sarah
#PythonCOMServer.py
import pythoncom
class PythonUtilities:
_public_methods_ = [ 'SplitString' ]
_reg_progid_ = "PythonDemos.Utilities"
# NEVER copy the following ID
# Use"print pythoncom.CreateGuid()" to make a new one.
_reg_clsid_ = pythoncom.CreateGuid()
print _reg_clsid_
def SplitString(self, val, item=None):
import string
if item != None: item = str(item)
return string.split(str(val), item)
# Add code so that when this script is run by
# Python.exe,.it self-registers.
if __name__=='__main__':
print 'Registering Com Server'
import win32com.server.register
win32com.server.register.UseCommandLine(PythonUtilities)
// the C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Type pythonServer;
object pythonObject;
pythonServer = Type.GetTypeFromProgID("PythonDemos.Utilities");
pythonObject = Activator.CreateInstance(pythonServer);
}
}
}
Notez l'avertissement dans le code python, pour ne pas utiliser un nouveau GUID à chaque appel. Créez un GUID seulement une fois. – gimel
Le code que vous avez publié est pour l'enregistrement d'un serveur COM; Avez-vous également mis en place (et en cours d'exécution) le serveur réel? –
Je pensais que l'enregistrement du serveur signifie qu'il fonctionne. Pouvez-vous me donner plus de guides. merci – Sarah