Wpis z mikrobloga

aby było przejrzyściej dodałem 3 metodę i wyniki dla serwera testowego
dla testów oczywiście wystarczą tylko odpowiedzi z serwera testowego, ale chyba po to jest wystawiony serwer pre-produkcyjny aby spać spokojnie i móc wydać aplikację...

` static string PostXMLData1(string destinationUrl, string requestXmlFile)
{
XmlDocument requestXml = new XmlDocument();
requestXml.Load(requestXmlFile);

string url = destinationUrl;
var client = new RestClient(url);

var requestInitUploadSigned = new RestRequest(Method.POST);
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(requestXml.OuterXml);
requestInitUploadSigned.AddParameter("application/xml encoding='utf-8'", bytes, ParameterType.RequestBody);

IRestResponse
Tak muszę doprecyzować. Wysyłałem tylko na bramkę testową i tylko pliki w wersji enveloping - podpis otacza dokument podpisywany - uznałem że będę używał tego formatu.

Na bramce testowej mój plik i plik initupload-enveloping.xades.xml przechodzi w obu procedurach.

Na bramce produkcyjnej mam dokładnie tak jak napisałeś.
Jednak mój plik testowy przechodzi przez obie procedury.

Plik initupload-enveloped.xades.xml nie przechodzi ani na bramce testowej ani na produkcyjnej.
@krzyhu7: ok, jeśli znajdziesz rozwiązanie do którejkolwiek z 3 wyżej wymienionych metod (1 i 2 Twojej i 3 mojej) to proszę o info. Chyba nie tylko my jesteśmy zainteresowani rozwiązaniem wskazanych problemów na bramce produkcyjnej a wszyscy czytelnicy tego wątku. Pozdrawiam i dziękuje Tobie jak i użytkownikowi @Gibonowski za przedstawienie dotychczasowych rozwiązań.
Jeszcze raz zwracam się z prośbą do użytkowników tego forum o publikację działającego rozwiązania o ile takie istnieje na
Zrobiłem jeszcze plik w wersji enveloped i przeszedł przez obie bramki.
Na tą chwile wg mnie działa. Problem jest tylko z plikami testowymi.
@krzyhu7: u mnie bez powodzenia, przynajmniej na tych testowych plikach xml z mf
utworzyłem 4 metodę

static string PostXMLData4(string destinationUrl, string requestXmlFile)
{
var client = new RestClient(destinationUrl);
var request = new RestRequest(Method.POST);
request.RequestFormat = RestSharp.DataFormat.Json;

string certificate = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "e-dokumenty.mf.gov.pl_ssl.cer");

X509Certificate2 cert = new X509Certificate2();
cert.Import(certificate);
client.ClientCertificates = new X509CertificateCollection(){cert};

byte[] bytes = System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(requestXmlFile, Encoding.UTF8));
request.AddParameter("application/xml encoding='utf-8'", bytes, ParameterType.RequestBody);

IRestResponse response = client.Execute(request);
return response.Content;
}

dla obu plików enveloping
cały czas otrzymuje komunikat {"Code":410,"Description":"Przesłane pliki nie są prawidłowym archiwum ZIP.","Details":"ERROR_DECOMPRESS","Upo":"","Timestamp":"2016-07-27T14:46:42+00:00"} ktoś wie o co chodzi? Próbowałem różnych metod kompresji, obecnie używam tej co tutaj ktoś polecił, nie mam już pomysłu o co chodzi...
Mam dokładnie to samo, też już próbuje różne parametry obiektu kompresującego zmieniać i dalej to samo :/
Najpierw przychodzi kod 120, czeka na weryfikacji, a później 410
@Gibonowski: na testowej bramce u mnie działa poprawnie metoda z biblioteki Ionic.Zip

using (var zip = new ZipFile())
{
zip.ParallelDeflateThreshold = -1;
zip.UseZip64WhenSaving = Zip64Option.AsNecessary;
zip.AddFile(fileName, string.Empty);
zip.FlattenFoldersOnExtract = true;
zip.CompressionMethod = CompressionMethod.Deflate;
zip.Save(zipFilePath);
}

na produkcyjnej nie potwierdzę, bo mam problem póki co z certyfikatem kwalifikowanym...
@Svenson8: piszesz o bramce testowej czy produkcyjnej?
U mnie na testowej najpierw 120 później nic nowego, non stop to samo (zgodnie zresztą z informacją na stronie mf, że wyłączyli weryfikację dokumentów na bramce). Raz udało mi się dotrzeć do statusu 200 ale to było ok. 2 tyg. temu, teraz coś pozmieniali :(
chodzi mi o produkcyjny, na testowym jest tylko 120 i dalej nie ma żadnej informacji o poprawności złożenia pliku.
Irytujące jest też to, że trzeba długo czekać na odpowiedź na serwerze produkcyjnym.
Właśnie zrobiłem tak:
Wziąłem ich initupload podpisałem go, wysłałem ich .aes i mam 200. Więc są 2 opcje: albo źle szyfruje klucz AES albo źle tym AESem szyfruje plik
po użyciu prawidłowego certyfikatu kwalifikowanego udało mi się wysłać na bramkę pre-produkcyjną
Za pierwszym razem otrzymałem

{"Code":410,"Description":"Przesłane pliki nie są prawidłowym archiwum ZIP.","Details":"ERROR_DECOMPRESS","Upo":"","Timestamp":"2016-07-28T08:32:23+00:00"}
a teraz za każdym razem (także mając dokładnie to samo co za pierwszym razem)

{"Code":100,"Description":"Rozpoczęto sesję przesyłania plików","Details":"","Upo":"","Timestamp":"2016-07-28T08:41:15.5276831+00:00"}
czy 100 oznacza, że dokument czeka na przetworzenie, czy to inny błąd?
@mmm234: sam sobie odpowiem
po prostu pomiędzy próbami trzeba odczekać trochę, ponieważ ostatnia sesja nie została automatycznie zamknięta.
po jakimś czasie mam znowu na starcie 120, a do kolejnej próby 100