# Notifica Scarto

**URL:** <https://forum.italia.it/t/notifica-scarto/3906>\
**Category:** Fatturazione Elettronica\
**Created:** [6 Luglio 2018, 11:22am UTC](https://forum.italia.it/t/notifica-scarto/3906 "2018-07-06T11:22:07Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![btia88](https://forum.italia.it/letter_avatar_proxy/v4/letter/b/7ab992/32.png) [@btia88](https://forum.italia.it/u/btia88)\
**Post date:** [6 Luglio 2018, 11:22am UTC](https://forum.italia.it/t/notifica-scarto/3906/1 "2018-07-06T11:22:07Z")

</div>

Buongiorno a tutti,  
sono riuscito a gestire in modo corretto la parte di autenticazione su IIS, andando però a schiantarmi sulla lettura della risposta fornita dal SdI.  
Quello che succede è che riesco ad inviare correttamente le fatture e (a quanto pare) ricevo il messaggio di risposta, in questo caso un messaggio di NotificaScarto, senza però riuscire a catturare l’oggetto.  
Credo che sia un problema legato ai Namespace, ma non riesco proprio a capire dove sto sbagliando; le classi sono state generate a partire dagli XSD forniti da SdI.

Per fare i test sto utilizzando SoapUI, verificando che la chiamata che fa il SdI e quella che si aspetterebbe il mio WS sono diverse.

Chiamata SOAP fatta da SdI:

> \<soapenv:Envelope xmlns:soapenv=“`http://schemas.xmlsoap.org/soap/envelope/`”\>  
> \< soapenv:Header\>  
> \< WSCorIDSOAPHeader xmlns=“`http://www.wilytech.com/`” CorID=“”\>  
> \</soapenv:Header\>  
> \< soapenv:Body\>  
> \<ns2:notificaScarto xmlns:ns2=“`http://www.fatturapa.gov.it/sdi/ws/trasmissione/v1.0/types`”\>  
> \< IdentificativoSdI\>\< /IdentificativoSdI\>  
> \< NomeFile\>\< /NomeFile\>  
> \< File\>\< /File\>  
> \</ns2:notificaScarto\>  
> \</soapenv:Body\>  
> \</soapenv:Envelope\>

Questa invece la chiamata che si aspetta il mio WS

> \<soapenv:Envelope xmlns:soapenv=“[http://schemas.xmlsoap.org/soap/envelope/](http://schemas.xmlsoap.org/soap/envelope/)” xmlns:typ=“[http://www.fatturapa.gov.it/sdi/ws/trasmissione/v1.0/types](http://www.fatturapa.gov.it/sdi/ws/trasmissione/v1.0/types)” xmlns:ns=“[http://schemas.datacontract.org/2004/07/](http://schemas.datacontract.org/2004/07/)”\>  
> \< soapenv:Header/\>  
> \< soapenv:Body\>  
> \< typ:NotificaScarto\>  
> \< typ:IdentificativoSdI\>\</typ:IdentificativoSdI\>  
> \< typ:NomeFile\>\</typ:NomeFile\>  
> \< typ:File\>\</typ:File\>  
> \</typ:NotificaScarto\>  
> \</soapenv:Body\>  
> \</soapenv:Envelope\>

La chiamata va a buon fine, perché non mi ritorna alcuna eccezione, solamente che i parametri sono tutti nulli.

Avete qualche suggerimento o idea su dove stia sbagliando?

Grazie a tutti

---

<div class="post-metadata">

**Author:** ![Antonio\_DC](https://forum.italia.it/user_avatar/forum.italia.it/antonio_dc/32/8262_2.png) [@Antonio\_DC](https://forum.italia.it/u/Antonio_DC)\
**Post date:** [30 Luglio 2018, 8:55am UTC](https://forum.italia.it/t/notifica-scarto/3906/2 "2018-07-30T08:55:14Z")

</div>

Ciao,  
stai sviluppando un WCF?  
Anch’io ho avuto lo stesso problema, ed ho dovuto produrre una correzione al flusso in ingresso.  
Tu come hai risolto?

---

<div class="post-metadata">

**Author:** ![Giulio](https://forum.italia.it/letter_avatar_proxy/v4/letter/g/45deac/32.png) [@Giulio](https://forum.italia.it/u/Giulio)\
**Post date:** [31 Luglio 2018, 10:20am UTC](https://forum.italia.it/t/notifica-scarto/3906/3 "2018-07-31T10:20:28Z")

</div>

Mi accodo, forse ho un problema analogo e non riesco a risolvere.  
Premetto che sviluppiamo in .net codice vb, abbiamo creato il ws trasmissionefatture.asmx a partire da wsdl fornito da sdi, riusciamo ad inviare le fatture e abbiamo passato tutti i test di interoperabilità.  
Il nostro web service trasmissionefatture non fa ancora nulla, ci sono i metodi vuoti e adesso stiamo sviluppando il codice per gestire le notifiche. Il problema è che il codice non viene eseguito!!! La chiamata da sdi non rende errori e lo conferma che i test sono superati ma il ws non fa niente. Abbiamo provato a loggare su file o su db e niente.  
Lo stesso chiamando da soapui (anche ws in sviluppo su locahost) non fa niente, risposta 200 ok, ma non esegue niente.  
Funziona solo se facciamo chiamata direttamente da browser in debug.

Grazie a tutti per qualunque suggerimento

---

<div class="post-metadata">

**Author:** ![Antonio\_DC](https://forum.italia.it/user_avatar/forum.italia.it/antonio_dc/32/8262_2.png) [@Antonio\_DC](https://forum.italia.it/u/Antonio_DC)\
**Post date:** [1 Agosto 2018, 8:30am UTC](https://forum.italia.it/t/notifica-scarto/3906/4 "2018-08-01T08:30:23Z")

</div>

Ciao,  
il mio problema è stato definire il mapping dell’oggetto NotificaEsito e il flusso che arriva da Sdi.  
Nello specifico non sono riuscito a trattare la parte di Namespace  
\<ns2:notificaScarto xmlns:ns2="“[http://www.fatturapa.gov.it/sdi/ws/trasmissione/v1.0/types](http://www.fatturapa.gov.it/sdi/ws/trasmissione/v1.0/types)”"\>  
Dopo aver perso un paio di giorni, ho deciso di bypassare modificando il flusso di ingresso togliendo gli ns2.  
Io ho sviluppato in C#, ma non cambia rispetto a VB. Se è questo il tuo problema ti passo il codice.

---

<div class="post-metadata">

**Author:** ![Giulio](https://forum.italia.it/letter_avatar_proxy/v4/letter/g/45deac/32.png) [@Giulio](https://forum.italia.it/u/Giulio)\
**Post date:** [2 Agosto 2018, 1:09pm UTC](https://forum.italia.it/t/notifica-scarto/3906/5 "2018-08-02T13:09:04Z")

</div>

Ciao, non saprei ma si potrebbe essere, il server risponde perché vedo la chiamata nel trace ma è come se non eseguisse il codice nel metodo NotificaScarto (o uno degli altri metodi e lo stesso).  
Si se mi passi il codice controllo, molte grazie

---

<div class="post-metadata">

**Author:** ![Antonio\_DC](https://forum.italia.it/user_avatar/forum.italia.it/antonio_dc/32/8262_2.png) [@Antonio\_DC](https://forum.italia.it/u/Antonio_DC)\
**Post date:** [2 Agosto 2018, 1:30pm UTC](https://forum.italia.it/t/notifica-scarto/3906/6 "2018-08-02T13:30:25Z")

</div>

Ciao,  
questa la definizione del service  
[ConsoleServiceBehavior]  
[ServiceBehavior(Name = “iTrasmetti”)]  
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]  
[XmlSerializerFormat()]  
public class Trasmetti : ITrasmetti

la classe (utilizza un convertitore c# to [vb.net](http://vb.net)) per intercettare la chiamata prima che arrivi al metodo:  
public class ConsoleServiceBehavior : Attribute, IServiceBehavior  
{  
public void AddBindingParameters(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase, System.Collections.ObjectModel.Collection endpoints, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)  
{  
}  
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)  
{  
foreach (var item in serviceHostBase.Description.Endpoints)  
{  
item.Behaviors.Add(new ConsoleEndpointBehavior());  
}  
}  
public void Validate(ServiceDescription serviceDescription, System.ServiceModel.ServiceHostBase serviceHostBase)  
{  
}  
}  
public class ConsoleMessageInspector : IClientMessageInspector, IDispatchMessageInspector  
{  
public Message CreateMessage(Message message)  
{  
MessageBuffer buffer = message.CreateBufferedCopy(Int32.MaxValue);  
Message msg = buffer.CreateMessage();  
StringBuilder sb = new StringBuilder();  
using (System.Xml.XmlWriter xw = System.Xml.XmlWriter.Create(sb))  
{  
msg.WriteMessage(xw);  
xw.Close();  
}  
return buffer.CreateMessage();  
}  
private Message TransformMessage(Message oldMessage)  
{  
try  
{  
MemoryStream ms = new MemoryStream();  
XmlWriter xw = XmlWriter.Create(ms);  
oldMessage.WriteMessage(xw);  
xw.Flush();  
string body = Encoding.UTF8.GetString(ms.ToArray());  
body = body.Replace("\<ns2:", “\<”);  
body = body.Replace("\</ns2:", “\</”);  
body = body.Replace(“xmlns:ns2=”, “xmlns=”);  
xw.Close();  
ms = new MemoryStream(Encoding.UTF8.GetBytes(body));  
XmlDictionaryReader xdr = XmlDictionaryReader.CreateTextReader(ms, new XmlDictionaryReaderQuotas());  
Message newMessage = Message.CreateMessage(xdr, int.MaxValue, oldMessage.Version);  
newMessage.Properties.CopyProperties(oldMessage.Properties);  
return newMessage;  
}  
catch  
{  
return oldMessage;  
}  
}  
public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanceContext)  
{  
request = TransformMessage(request);  
return request;  
}  
public void BeforeSendReply(ref System.ServiceModel.Channels.Message reply, object correlationState)  
{  
reply = CreateMessage(reply);  
}  
public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState)  
{  
reply = CreateMessage(reply);  
}

```
    public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel)
    {
        request = CreateMessage(request);
        return null;
    }
}

public class ConsoleEndpointBehavior : IEndpointBehavior
{
    public void AddBindingParameters(ServiceEndpoint endpoint, System.ServiceModel.Channels.BindingParameterCollection bindingParameters)
    {
    }
    public void ApplyClientBehavior(ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.ClientRuntime clientRuntime)
    {
        clientRuntime.MessageInspectors.Add(new ConsoleMessageInspector());
    }
    public void ApplyDispatchBehavior(ServiceEndpoint endpoint, System.ServiceModel.Dispatcher.EndpointDispatcher endpointDispatcher)
    {
        endpointDispatcher.DispatchRuntime.MessageInspectors.Add(new ConsoleMessageInspector());
    }
    public void Validate(ServiceEndpoint endpoint)
    {
    }
}

```

Non è pulito come metodo, ma in assenza di altro….

---

<div class="post-metadata">

**Author:** ![Giulio](https://forum.italia.it/letter_avatar_proxy/v4/letter/g/45deac/32.png) [@Giulio](https://forum.italia.it/u/Giulio)\
**Post date:** [6 Agosto 2018, 10:02am UTC](https://forum.italia.it/t/notifica-scarto/3906/7 "2018-08-06T10:02:54Z")

</div>

Ciao Antonio, grazie per il codice.  
Stiamo usando però un web service asmx non wfc.  
In ogni caso abbiamo fatto dei passi avanti, inserendo nell’evento Application\_BeginRequest del global.asax riusciamo a catturare la request.inputstream che contiene la soapenv:Envelope inviata con la notifica e dentro ci sono i dati che servono.  
Abbiamo visto che il nostro metodo NotificaScarto viene correttamente chiamato però il parametro in ingresso “scarto” (di tipo fileSdI\_Type) è Nothing. Qualche suggerimento?  
Si potrebbe gestire tutto nella Application\_BeginRequest ma non è molto pulito.

---

<div class="post-metadata">

**Author:** ![FunkySteve](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/977dab/32.png) [@FunkySteve](https://forum.italia.it/u/FunkySteve)\
**Post date:** [10 Settembre 2018, 2:13pm UTC](https://forum.italia.it/t/notifica-scarto/3906/9 "2018-09-10T14:13:53Z")

</div>

Buonasera…Ciao,  
Anche io sto sviluppando in VB .NET, ho il problema dell’ errore (org.apache.axis2.AxisFault: HTTP ( 500 ) Internal Server Error address : [https://26.2.162.231:80](https://26.2.162.231:80)) nel momento in cui devo ricevere la notifica di scarto…mi sembra di capire che il problema sia il fatto che il mio WS Trasimissione Fatture  
non tratta i messaggi in formato Mtom. come faccio a dire al mio WEbService di accettare i messaggi MTOM inVB .NET?

---

<div class="post-metadata">

**Author:** ![Giulio](https://forum.italia.it/letter_avatar_proxy/v4/letter/g/45deac/32.png) [@Giulio](https://forum.italia.it/u/Giulio)\
**Post date:** [11 Settembre 2018, 7:24am UTC](https://forum.italia.it/t/notifica-scarto/3906/10 "2018-09-11T07:24:58Z")

</div>

Che versione .net?  
Il web service è wcf o asmx?  
Prova con soapui riesci ad ottenere più informazioni per capire il problema

---

<div class="post-metadata">

**Author:** ![FunkySteve](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/977dab/32.png) [@FunkySteve](https://forum.italia.it/u/FunkySteve)\
**Post date:** [11 Settembre 2018, 7:35am UTC](https://forum.italia.it/t/notifica-scarto/3906/11 "2018-09-11T07:35:02Z")

</div>

- visual studio 2017
- .net framework di dest. 4.6.1
- il ws è .asmx

---

<div class="post-metadata">

**Author:** ![Marco\_Martone](https://forum.italia.it/user_avatar/forum.italia.it/marco_martone/32/12934_2.png) [@Marco\_Martone](https://forum.italia.it/u/Marco_Martone)\
**Post date:** [11 Settembre 2018, 11:09am UTC](https://forum.italia.it/t/notifica-scarto/3906/12 "2018-09-11T11:09:52Z")

</div>

Scusate a me quando invoco il mio servizio con un allegato notifica scarto che mi manda SDI mi risponde con  
`
SOAP-ENV:Server
Procedure ‘NotificaScarto’ not present
`

Mentre se mando un allegato modificato da me risponde l’unica differenza è il ns. Su quella di sdi è ns3:NotificaScarto mentre su quella modificata è ns2:notificaScarto. Ho fatto anche diverse prove maiuscole/minuscole ma niente.

Capitato a qualcuno?

---

<div class="post-metadata">

**Author:** ![Daniele\_Bisol](https://forum.italia.it/user_avatar/forum.italia.it/daniele_bisol/32/3403_2.png) [@Daniele\_Bisol](https://forum.italia.it/u/Daniele_Bisol)\
**Post date:** [12 Settembre 2018, 8:10pm UTC](https://forum.italia.it/t/notifica-scarto/3906/13 "2018-09-12T20:10:41Z")

</div>

se non erro i vecchi asmx non accettano mtom, devi sviluppare in wcf e nel web.config aggiungere messageEncoding=“Mtom” al binding

---

<div class="post-metadata">

**Author:** ![Giulio](https://forum.italia.it/letter_avatar_proxy/v4/letter/g/45deac/32.png) [@Giulio](https://forum.italia.it/u/Giulio)\
**Post date:** [13 Settembre 2018, 10:53am UTC](https://forum.italia.it/t/notifica-scarto/3906/14 "2018-09-13T10:53:56Z")

</div>

Ciao, funziona anche con asmx.  
ho sviluppato un servizio .asmx e riesco a fare tutto, passati tutti i test e ho il canale in produzione

---

<div class="post-metadata">

**Author:** ![Daniele\_Bisol](https://forum.italia.it/user_avatar/forum.italia.it/daniele_bisol/32/3403_2.png) [@Daniele\_Bisol](https://forum.italia.it/u/Daniele_Bisol)\
**Post date:** [13 Settembre 2018, 10:56am UTC](https://forum.italia.it/t/notifica-scarto/3906/15 "2018-09-13T10:56:27Z")

</div>

Ottimo bene, anch’io passati i test e metterò in prod a breve

---

<div class="post-metadata">

**Author:** ![Domenico\_Neri](https://forum.italia.it/user_avatar/forum.italia.it/domenico_neri/32/3509_2.png) [@Domenico\_Neri](https://forum.italia.it/u/Domenico_Neri)\
**Post date:** [13 Settembre 2018, 10:58am UTC](https://forum.italia.it/t/notifica-scarto/3906/16 "2018-09-13T10:58:33Z")

</div>

Occhio che se passi in produzione, non puoi più fare i test dell’applicativo che devi o che stai sviluppando.

---

<div class="post-metadata">

**Author:** ![Daniele\_Bisol](https://forum.italia.it/user_avatar/forum.italia.it/daniele_bisol/32/3403_2.png) [@Daniele\_Bisol](https://forum.italia.it/u/Daniele_Bisol)\
**Post date:** [13 Settembre 2018, 11:10am UTC](https://forum.italia.it/t/notifica-scarto/3906/17 "2018-09-13T11:10:32Z")

</div>

si infatti, “a breve” = abbiamo ancora una tonnellata di verifiche su gestione logs/salvataggio files/etc …  
Thx

---

<div class="post-metadata">

**Author:** ![Domenico\_Neri](https://forum.italia.it/user_avatar/forum.italia.it/domenico_neri/32/3509_2.png) [@Domenico\_Neri](https://forum.italia.it/u/Domenico_Neri)\
**Post date:** [13 Settembre 2018, 11:16am UTC](https://forum.italia.it/t/notifica-scarto/3906/18 "2018-09-13T11:16:02Z")

</div>

ahahahahahahah

IDEM!

---

<div class="post-metadata">

**Author:** ![Antonio\_DC](https://forum.italia.it/user_avatar/forum.italia.it/antonio_dc/32/8262_2.png) [@Antonio\_DC](https://forum.italia.it/u/Antonio_DC)\
**Post date:** [14 Settembre 2018, 10:54am UTC](https://forum.italia.it/t/notifica-scarto/3906/19 "2018-09-14T10:54:40Z")

</div>

Ciao,  
ho avuto la pausa estiva e riprendo ora.  
Qualcuno sa come gestire  
Invio Notifica Decorrenza Termini a Pubblica Amministrazione  
?  
Grazie mille

---

<div class="post-metadata">

**Author:** ![FunkySteve](https://forum.italia.it/letter_avatar_proxy/v4/letter/f/977dab/32.png) [@FunkySteve](https://forum.italia.it/u/FunkySteve)\
**Post date:** [19 Settembre 2018, 1:43pm UTC](https://forum.italia.it/t/notifica-scarto/3906/20 "2018-09-19T13:43:21Z")

</div>

buonasera Daniele,

Sei percaso incappato in questo problema durante i test di “Ricezione Fatture”?:

Server did not recognize the value of HTTP Header SOAPAction: [http://www.fatturapa.it/RicezioneFatture/RiceviFattureSdI](http://www.fatturapa.it/RicezioneFatture/RiceviFattureSdI).

il mio Ws è in .NET asmx

---

<div class="post-metadata">

**Author:** ![Daniele\_Bisol](https://forum.italia.it/user_avatar/forum.italia.it/daniele_bisol/32/3403_2.png) [@Daniele\_Bisol](https://forum.italia.it/u/Daniele_Bisol)\
**Post date:** [19 Settembre 2018, 1:57pm UTC](https://forum.italia.it/t/notifica-scarto/3906/21 "2018-09-19T13:57:53Z")

</div>

Ciao @FunkySteve  
mi sembra di vedere che stai chiamando un http e non un https  
I loro ws (ed anche i tuoi in ricezione) sono https, devi impostarlo nel binding (vuoi farlo nel web.config), ed aver installato correttamente i certificati sia client che server

[Pagina seguente](https://forum.italia.it/t/notifica-scarto/3906.md?page=2)
