Que tal
Lo que necesito hacer es invocar un web service desde una dll, la cual sera invocada a su vez mediante un scenario de B1if con un CALL .Net, he realizado una prueba para ver si se comunica mi scenario con mi dll y obtengo este error:
<dotnetcall xmlns=""> <ReturnResult dataType="string"> <Value>RUNTIME ERROR: Premature run-time termination. Check exception message for details.</Value> </ReturnResult> <Exception exceptionType="System.Reflection.TargetException"> System.Reflection.TargetException: Object does not match target type. at System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target) at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at DotNetInterop.LoadDotNetAssembly.LoadAssembly() </Exception> <ConsoleOutput/></dotnetcall>
Este es mi código de la dll.
namespace mynamespace
{ public class myclass { public string myfunction(string strXml) { string res = ""; try { WS wsObj = new WS(); wObjs.funcionWS(strXml); } catch (Exception ex) { } return res; } }
}
y esta la invocación desde el atom en b1if.
<dotnetcall> <Assembly title="mynamespace.myclass" path="url\miEnsambaldo.dll"/> <Function name="myfunction"/> <ParameterList> <Parameter dataType="string" isArray="false"> <Value>Hola</Value> </Parameter> </ParameterList> <RedirectConsoleOutput>false</RedirectConsoleOutput></dotnetcall>
Revisando en el servidor donde esta instalado B1if encontré Microsoft Visual C++ 2010 Redistributable Package
y en la documentación mencionan el SP1 Microsoft Visual C++ 2010 SP1 Redistributable Package
Podrían ayudarme por favor.
Saludos