birophl'8 agosto 2011 alle 15:21
Buongiorno,
sto creando un metodo di un WebService (asmx) che ritorni una classe non direttamente istanziabile dal cliente che utilizza il servizio.
La classe ha 2 attributi, il nome dell'applicativo chiamante e un Guid che identifica il chiamante per la sessione.
Avevo pensato di creare una classe astratta e di implementarla nel livello di Business del WS per valorizzare le 2 proprietà e poi di ritornarla al chiamante, ma quando il chiamante prova a colegarsi al metodo GetMiaClasse ritorna un errore SOAP.
System.ServiceModel.FaultException non è stata gestita
Message="System.Web.Services.Protocols.SoapException: Impossibile elaborare la richiesta. ---> System.InvalidOperationException: Errore durante la generazione del documento XML. ---> System.InvalidOperationException: Tipo BLMioServizio.BL_ManageHideClass imprevisto. Utilizzare l'attributo XmlInclude o SoapInclude per specificare tipi non conosciuti a livello statico.\n in Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write32_Token(String n, String ns, Token o, Boolean isNullable, Boolean needType)\n in Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write159_GetTokenResponse(Object[] p)\n in System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)\n --- Fine dell'analisi dello stack dell'eccezione interna ---\n in System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)\n in System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle)\n in System.Web.Services.Protocols.SoapServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)\n in System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)\n in System.Web.Services.Protocols.WebServiceHandler.Invoke()\n --- Fine dell'analisi dello stack dell'eccezione interna ---"
Source="mscorlib"
StackTrace:
Server stack trace:
in System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
in System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
in System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
in System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
in System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
in System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
in TestMioServizio2008.MioServizio.MioServizioServiceSoap.GetHideClass(String AppName)
in TestMioServizio2008.MioServizio.MioServizioServiceSoapClient.GetToken(String AppName) in C:\TestMioServizio2008\TestWsMioServizio2008\Service References\MioServizio\Reference.cs:riga 5138
in TestMioServizio2008.Program.Main(String[] args) in C:\TestMioServizio2008\TestMioServizio2008\Program.cs:riga 13
in System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
in Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
in System.Threading.ThreadHelper.ThreadStart()
InnerException:
Probabilmente sbaglio qualcosa, come posso fare?
Grazie per l'aiuto