Как загрузить данные с помощью служб windows C#
Дорогие Все,
Я пытаюсь создать службу windows для загрузки данных с клиентской машины на сервер с помощью Ajax/web-сервера в базу данных SQL.
Здесь службы окна создадут один файл журнала.
Файл на компьютере клиента зашифрован, поэтому службы windows сначала расшифруют его, а затем загрузят данные на сервер. И есть один коммуникационный помощник для загрузки данных с клиентской машины на сервер.
Службы успешно получают файл и расшифровывают его, но не загружают данные на сервер.
Что я уже пробовал:
public string UploadOfflineResult() { var pathSouce = Directory.GetParent(Directory.GetParent(Environment.SystemDirectory.ToString()).ToString()).FullName; var offlinePath = pathSouce + ConfigurationManager.AppSettings["resultFile"]; WriteToFile(offlinePath); FileInfo _file = new FileInfo(offlinePath); WriteToFile(_file.Exists ? "Offline result file exist" : "Offline result file does not exist"); if (_file.Exists && getPing()) { WriteToFile("Working ON offline exam result file"); OfflineExamResult offlineExamResult = null; try { FileStream fs = new FileStream(@"" + offlinePath, FileMode.Open); WriteToFile("converted to stream file: " + @"" + offlinePath); using (StreamReader sr = new StreamReader(fs)) { WriteToFile("Reading file"); string data = sr.ReadToEnd(); offlineExamResult = Cryptography.Decrypt<OfflineExamResult>(data); WriteToFile("CS: " + offlineExamResult.CandidateSessionID.ToString()); WriteToFile("Offline result file DECRYPTED"); //Not able to Upload data CommunicationHelper.UpdateCandidateOfflineExamResultUsingWindowService( JsonConvert.SerializeObject(offlineExamResult, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore })); WriteToFile("UpdatedOfflineCandidateExamResult: CandidateSessionID=" + offlineExamResult.CandidateSessionID + " "); return true.ToString(); } } catch (Exception ex) { ex = ex.InnerException; //Avoid warning return JsonConvert.SerializeObject( new { success = false, message = "Invalid result file content" }, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); } } return false.ToString(); }
CommunicationHelper.в CS
public static string UpdateCandidateOfflineExamResultUsingWindowService(string _offlineExamResult, string fullUrl) { WebClient webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; string postData = string.Format("offlineExamResult={0}", _offlineExamResult); string result = Task.Run(() => webClient.UploadStringTaskAsync(fullUrl, postData)).Result; return true.ToString(); }
Кто-нибудь может пожалуйста помочь мне.
Спасибо
F-ES Sitecore
Где находится код, который выполняет загрузку?
Dave Kreskowiak
Вы никогда не показывали код для этого звонка:
Коммуникационный помощник.UpdateCandidateOfflineExamResultusingwindowservice
И вы никогда не объясняли, что происходит, когда этот вызов сделан или какие-либо сообщения об ошибках возвращаются.
Это невозможно для любого, чтобы помочь вам без этой информации.
abdul subhan mohammed
Для преобразования в offlineResultInfo.cs
Dave Kreskowiak
Ваше утверждение бессмысленно. Я понятия не имею, что такое "offliceResultInfo.cs", и у меня нет к нему доступа, потому что он находится на вашей машине.
abdul subhan mohammed
Нет никаких ошибок, и ничего не происходит. Я проверил лог-файл, он работает до тех пор, пока "файл не расшифрован", но не может связаться с веб-сервером.
Dave Kreskowiak
Без кода, который вы написали для CommunicationHelper.UpdateCandidateOfflineExamResultusingwindowservice, это невозможно сказать вам что-нибудь полезное.
Gerry Schmitz
И почему вам нужно "расшифровать" перед загрузкой. Не иметь смысла.