Notifica Scarto

avevo seguito le stesse logiche della trasmissione… comunque adesso ho inserito in mio endpoint e mi restituisce (inviando da ws una Fattura con codice destinatario tra quelli a dispo per la PA)
java.io.IOException: Unable to decrypt message …mah!

grazie!

Buongiorno FunkySteve,

spero di non disturbare ma, purtroppo, sono anche io bloccato da giorni sul problema del mio WS TrasmissioneFatture che genera errore “org.apache.axis2.AxisFault: HTTP ( 403 ) Forbidden” quando viene invocato da SdI, e allora provo a chiedere aiuto a chi ha forse già risolto e superato questo passaggio.

Ho anche richiesto l’assistenza di SOGEI ma sono ormai giorni che attendo di essere richiamato.:weary:

Penso si tratti di un problema di certificati ma non capisco, li ho installati tutti allo stesso modo e l’invio (con RiceviFile) riesco a farlo. E allora perché TrasmissioneFatture non va?
Qual è esattamente, fra tutti quelli forniti, il certificato richiesto da SdI per questo tipo di comunicazione?
Sono forse richieste delle impostazioni ulteriori, magari a livello di IIS?
Sto a uscì pazz!

Ma una cosa più semplice non potevano farla?

In rete non si trova praticamente niente al riguardo, e questo forum sembra essere l’unico dove poter scambiare una qualche informazione e capirne qualcosa in più.

Io uso Windows Server, IIS e .net con gli .asmx.
Grazie.

Ciao Angelo,
come già spiegato da altri nel Forum molto bene, per poter ricevere la notifica dopo una trasmissione occore che l’endpoint richieda la conferma del certificato (questo lo si può verificare richiamando l’url da browser).tuttto questo va impostato da IIS con la creazione di un oneToOne Mappings troverai le spiegazioni in altri post del Forum…in più occorre controllare anche tutti i permessi a livello di cartella windows

Ciao FunkySteve,
anzitutto grazie per avermi risposto, iniziavo a sentirmi come un naufrago su un’isola deserta :grimacing:

Richiamando l’URL da browser (uso Google Chrome) già ora mi appare il popup per la selezione/conferma del certificato.
popup-richiesta-certificato

Come da te suggerito, ho anche provato a creare un OneToOne Mappings, indicando come utente e password (per questa prova ho inserito direttamente le credenziali dell’utente Administrator) e incollando nel campo certificate la parte compresa tra -----BEGIN CERTIFICATE----- e ----END CERTIFICATE— di SistemaInterscambioFatturaPATest.cer
E’ forse un altro il certificato da usare?

Comunque niente è cambiato. Da browser continua a chiedermi il certificato (ma lo faceva già prima) e tuttavia SdI riceve sempre lo stesso errore 403 Forbidden e non mi manda nessuna notifica di scarto.

Inoltre non ho trovato sul Forum nessuno dei post a cui accenni, potresti darmi dei link a tali post? Sono nuovo del Forum e forse sbaglio io ma se cerco OneToOne l’unico post che mi viene trovato è il tuo.:thinking:

In ogni caso, grazie ancora per i tuoi suggerimenti.:+1:

visto che il certificato lo espone …allora non ti resta che guardare i permessi sulle cartelle e su iis e altra cosa che potresti fare visto che i certificati li avrai sicuramente installati a livello di local Machine …dovresti installarli anche a livello di local user sempre sulla macchina che ospita iis usando un utente con privilige completi … istallazione che fai direttamente dallo snap-in dei certificati nella Console di Microsoft

Ciao FunkySteve,
grazie ancora per la tua risposta. Purtroppo anche così non ne vengo a capo.

I permessi sulla cartella del ws ci sono tutti (per tutti gli utenti, compreso SERVIZIO DI RETE).
I certificati li ho installati anche a livello di local user (come Administrator) con lo snap-in della Console.
Ma niente, sempre lo stramaledetto errore 403.

Mi viene un dubbio: l’endpoint di test che ho fornito con l’accreditamento è così formato: https://178.xxx.xxx.xxx//wsSdiTest/TrasmissioneFatture.asmx
non è che per qualche motivo l’estensione .asmx possa essere un problema per SdI?
Non so più cosa pensare… :tired_face:

…Allora …per l’endpoint dovevi tralasciare il nome del servizio…secondo me. altra cosa in IIS hai creato un Application pools specifica per il tuo Ws e nelle sue impostazioni avanzate hai indicato un utente con permessi di amministratore alla voce “Identity”

Ciao FunkySteve, e Grazie ancora per la risposta, ma anche configurando l’Application pool in questo modo il risultato non cambia. In quanto al nome del servizio, non saprei, mi è sembrato logico indicarlo.
Ma tu hai usato gli ASMX? Se sì come glie l’hai indicato l’Endpoint?

Comunque ho aperto un ticket di assistenza da mercoledì scorso, e ancora non sono riuscito a parlare con un tecnico!
Che poi, mi chiedo, ma sarebbe costato così tanto a SOGEI fornire qualche esempio pratico nei principali linguaggi/ambienti? Un’infinità di ore in inutili sbattimenti in meno per tutti. :triumph:

Ciao Angelo,
si io uso vb .net 2017 e ho creato degli .asmx. i miei endpoint sono dei sottodominii e per l’accreditamento li ho indicati così https://sDominio.Dominio.it dove sDominio è il nome dell’endpoint che ho registrato. Questo per ognuno degli endpoints richiesti da SdI.
per la tua ultima considerazione …sono d’accordo…e lo hanno pensato in molti …credo!

Io uso c# soap standard (non WCF con asmx) ed ho installato su windows server 2016 IIS 10.
Il tuo problema è relativo ai certificati.

Io ho risolto facendo così :

  1. Ho preso i certificati che mi hano dato.
  2. ho creato i pfx
  3. ho importato i CA (sia test che produzione) in modo che i successivi certificati vengano accettati.
  4. ho importato il pfx server
  5. come certificato di client autentication ho importato SistemaInterscambioFatturaPATest.cer (comunque nel readme è spiegato a cosa servono i certificati)
  6. ho installato il certificato sul dominio
  7. ho impostato nella sezione SSL (require SSL ed Accept (non Require perchè io voglio poter aver accesso in debug))
  8. ho impostato le configurazione ManyTo One seguendo questa guida.
    https://blog.jayway.com/2014/10/27/configure-iis-to-use-your-self-signed-certificates-with-your-application/
    (ho disabilitato l’OneTo One, ho creato un utente apposito con i permessi user, ho dato i permessi alla cartella e non ho impostao alcuna regola in quanto a me basta il controlla sulla CA)

Dopodichè ho cominciato a lavorare sui binding WS.

Spero di esserti utile.

Ahh, finalmente dopo tanta disperazione si inizia a vedere un po’ di luce! Ma solo grazie al Forum (FunkySteve e G1zm0), non certo all’assistenza.

Ottimo Riccardo, ho seguito i tuoi passaggi e ora il metodo NotificaScarto di TrasmissioneFatture.asmx viene finalmente richiamato! Wow :ok_hand:

E puntualmente, superato un problema se ne presenta un altro: il parametro in input è Nothing.
Come mai?

Cercando nel forum ho visto che anche altri hanno incontrato questo problema e ipotizzato potesse dipendere dall’encoding MTOM ma, alla fine, non mi è chiaro come l’abbiano risolto.

Non on centra niente MTOM.

Il problema è che sdi aggiunge dei namespace ai tag.

<ns2:notificaScarto xmlns:ns2=“http://www.fatturapa.gov.it/sdi/ws/trasmissione/v1.0/types”>

Quindi o si rimuovono o si mappano.

Stesso problema sto riscontroando io nella risposta.
Se vedi l’altro thread Errore SDI in recezione (casuale ? )

ci sto lavorando…

Alla fine una via crucis sta integrazione…

Risolto tutto!!!

Ciao FunkySteve, succede la stessa cosa (o almeno credo sia la stessa cosa) anche a me.
Ho inviato una fattura PA, ovviamente firmata, e questo è stato il risultato:
invio-ricevuta-consegna

invio-ricevuta-consegna-errore
A cosa può essere dovuto questo errore? Tu avevi risolto?

Grazie e ciao

non ricordo più però…


potrebbe essere un problema di decodifica…

Grande FunkySteve, ottima memoria! Era proprio lui il problema. Grazie! :+1:

mooolto bene!..à sò cuntènt!!!

Non riesco a ricevere nessun tipo di file sia quelli delle Fatture sia quello delle notifiche…sempre errore:
System.NullReferenceException: Object reference not set to an instance of an object.

cè una buonanima che sa dirmi dove sbaglio (.asmx con VisualBasic)

DA quello che ho visto io vanno messi i namespace nei parametri dìingresso:
es:

Comunque per evitare problemi ho scritto un parser nel Global asax (Application_BeginRequest) che gestisce le richieste.

Grazie! ma… Parser nel global.asax (Application_beginRequest) …non ne ho un’idea!
:sweat_smile::blush::hot_face: