Je ne suis pas sûr si je reçois l'image entière , mais j'espère que cela aidera. Je pense que vous avez Excel vba appelant dans .NET via une interface COM et ensuite dans un svc web SOAP.
Vous devez avoir le bon PIA installé et référencé par votre assembly .NET. Votre interface COM devrait ressembler à ceci:
[Guid("123Fooetc...")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IBar
{
[DispId(1)]
void SomeMethod(Excel.Range someRange);
}
implémentent l'interface avec quelque chose de classe comme ceci:
[Guid("345Fooetc..")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("MyNameSpace.MyClass")]
public class MyClass : IBar
{
public void SomeMethod(Excel.Range someRange)
{...}
}
La première chose que je voudrais faire est de remplacer votre appel de service Web avec un réel simple, méthode dans votre code .NET, pour vous assurer que votre interface et votre wrapper interop fonctionnent correctement.
Une fois que votre squelette fonctionne correctement, vous pouvez envisager d'appeler votre service avec une méthode HTTP au lieu d'utiliser SOAP. Par exemple, voici un appel simple utilisant HTTP GET:
string resource = yourUrl;
using (WebClient web = new WebClient())
{
web.Credentials = CredentialCache.DefaultCredentials;
someXml = web.DownloadString(resource);
}
return someXml; // or do something interesting with Excel range
Y a-t-il une chance de laisser tomber le code que vous utilisez? – Kev