Dobrý den,
V produkci na datové schránce gm9ri5i nastal problém při stahování datové zprávy s odpovědí 312521078. Při užití metody SignedSenMessageDownload se mi v 90% se mi objekt typu tSignedMessDownOutput stahne s prázdnou propertou dmSignature. dmSignature je pole bajtů které lze uložit jako *.ZFO soubor. Prosím o pomoc, služba totiž korektně odpověděla, nenastala žádná chyba. Bylo by možné zjistit z Vašich logů co je špatně?
Děkuji, S pozdravem
Stárek
private void getLastSentMsg(string sentMsgID)
{
DS_MessagingOperations.tSignedMessDownOutput outfile = null;
DS_MessagingOperations.dmOperationsPortTypeClient sentmsg = null;
sentmsg = new DS_MessagingOperations.dmOperationsPortTypeClient();
sentmsg.ClientCredentials.UserName.UserName = _fromUser;
sentmsg.ClientCredentials.UserName.Password = _fromPwd;
outfile = sentmsg.SignedSentMessageDownload(new DS_MessagingOperations.tIDMessInput() { dmID = sentMsgID });
string zfoFilePath = Email.ArchiveFolder + "\\attachments\\" + sentMsgID + ".zfo";
AddinLogger.Instance.Info(string.Format("Ukládám ZFO soubor '{0}' velikosti {1} bajtů.", zfoFilePath, outfile.dmSignature.Length));
File.WriteAllBytes(zfoFilePath, outfile.dmSignature);
AddinLogger.Instance.Info("ZFO soubor uložen.");
sentmsg.Close();
}
138.1 Re: Prázdné pole bajtů dmSignature
admin 17.01.2017 11:36Dobrý den,
říkáte, že při stažení právy službou SignedSentMessageDownload služba vrací status 0000 "Provedeno úspěšně" a současně prázdný element dmSignature?
Zkusil jste tutéž zprávu stáhnout Portálem?
děkuji
Jan Šíma
ISDS
138.2 Re: Prázdné pole bajtů dmSignature
admin 17.01.2017 11:36Dobrý den, v logu ze včera je vidět, že se pokoušíte stáhnout odeslanou zprávu ihned po odeslání - ale to nejde a služba korektně oznámí status 1229 "Zpráva dosud nebyla dodána do schránky příjemce." Význam je: zpráva ještě nebyla orazítkovaná na vstupu, na razítko se ve špičce čeká i sekundy.
Opravdu kontrolujete návratové stavy služeb?
Pro informaci - příjemce si tuto zprávu bez problému stáhnul.
Jan Šíma
ISDS
138.3 Re: Prázdné pole bajtů dmSignature
admin 17.01.2017 11:36Dobrý den pane Šímo,
Děkuji za odpověď. Zpráva šla přes webový portál stáhnout. Dnes ráno jsem se pokusil i o stažení v rámci c# kódu a povedlo se. Hned jak zjistíme, že v rámci odesílání zprávy se vrátil návratový kód 0000 tak voláme metodu na stažení viz metoda víše. To žemi to v testu v rámci debugování, nebo při odesílání zpráv s malými přílohami a mimo špičku vše proběhne bez problému je díky odezvě při razítkování.
Velice děkuji za vysvětlení, S pozdravem,
Jan Stárek
public void SendReplyMessage()
{
DS_MessagingOperations.dmOperationsPortTypeClient cl = new DS_MessagingOperations.dmOperationsPortTypeClient();
var dataBox = GetDataBoxByID(this.RecipientID);
_fromUser = dataBox.User;
_fromPwd = Email.decryptedPassword(dataBox.Password);
cl.ClientCredentials.UserName.UserName = _fromUser;
cl.ClientCredentials.UserName.Password = _fromPwd;
DS_MessagingOperations.tMessageCreateInput CreateMessageInput = new DS_MessagingOperations.tMessageCreateInput();
DS_MessagingOperations.tMessageCreateOutput CreateMessageOutput = new DS_MessagingOperations.tMessageCreateOutput();
CreateMessageInput.dmFiles = PrepareMessageEnclosureFiles();
CreateMessageInput.dmEnvelope = PrepareMessageEnvelope(this.SenderID);
CreateMessageOutput = cl.CreateMessage(CreateMessageInput);
string id = CreateMessageOutput.dmID;
if (CreateMessageOutput.dmStatus.dmStatusCode == "0000")
{
getLastSentMsg(id);
}
else
{
throw new InvalidOperationException(string.Format("Nastala chyba při poři odesílání odpovědi na zprávu {0}, status {1}, message {2}.", id, CreateMessageOutput.dmStatus.dmStatusCode,
CreateMessageOutput.dmStatus.dmStatusMessage));
}
}