Отправка Ajax без возврата из-за возможной обфускации при последующей отправке с сервера на внешний сайтC#

Место общения программистов C#
Ответить
Anonymous
 Отправка Ajax без возврата из-за возможной обфускации при последующей отправке с сервера на внешний сайт

Сообщение Anonymous »

От клиента я отправляю Ajax-запрос на сервер, ожидая возврата.

Код: Выделить всё

 $.ajax({
type: "POST",
url: "RespuestaajaxL.aspx/RespuestaajTask",
contentType: "application/json; charset=utf-8",
data: '{"parametro":"funcion","valor":"ActualizarArchivoDrive","tabla":"' + datosserver.nombrearchivo + '","campo":"' + datosserver.extensionarchivo + '","criterio":"' + datosserver.nombrearchivosinext + '","v1":"' + datosserver.extensionarchivoO + '","v2":"' + datosserver.idFile + '","v3":"' + datosserver.idFolder + '","v4":"","v5":"","v6":"","v7":"","v8":""}',
dataType: "json",
success: function (devolucion) {
if (devolucion.d) {
alert("Actualizado el archivo en Drive");
}
},
error: function (req, status, error) {
alert("No hubo respuesta desde el servidor. Prueba otra vez.");
}
});
Вызов успешен. В рамках процедуры, уже находящейся на сервере, выполняется обновление файла, расположенного на Google Диске. Это обновление выполнено успешно, но ответ клиенту не возвращается. Процесс ничего не возвращает клиенту. Я проверил весь процесс, включив проверку ошибок с помощью try catch в трех задействованных методах, и ошибок не возникло.
Из модуля, от которого я получаю запрос Ajax, я выполняю функцию, которая обновляет файл на Диске.

Код: Выделить всё

 public static Task RespuestaajTask(string parametro, string valor, string tabla, string campo, string criterio, string v1,
string v2, string v3, string v4, string v5, string v6, string v7, string v8)
{
try
{
if (parametro == "funcion")
{
if (valor == "ActualizarArchivoDrive")
{
return Cp.ActualizarArchivoDrive(tabla, campo, criterio, v1, v2, v3);
}
}
return null;
}
catch (Exception exc) {
string st = exc.Message;
}
return null;
}
Обновление файла Google Диска осуществлялось следующим способом:

Код: Выделить всё

public async Task ActualizarArchivoDrive(string nombrefile, string extension, string nombrefilesinext, string extensionO, string idFile, string idFolder)
{
try
{
string extGuardar = (extension != extensionO ? "jpg" : extensionO);
Google.Apis.Drive.v3.DriveService ds = CodigoGeneral.Globales.gds;
string filePath = (string)HttpContext.Current.Server.MapPath("~") + "google/archivoseditados/" + nombrefilesinext + "." + extGuardar;

var updateFileBody = new Google.Apis.Drive.v3.Data.File()
{
Name = nombrefile
};

await Ue(filePath, idFile, "image/jpeg", updateFileBody, ds);
}
catch (Exception ee)
{
string ss = ee.Message;
}
return "Finalizado";
}
Как видите, предыдущий метод вызывает следующий метод с ожиданием:

Код: Выделить всё

public async Task Ue(string filePath, string fileId, string MIME, Google.Apis.Drive.v3.Data.File updateFileBody, Google.Apis.Drive.v3.DriveService ds)
{
try
{

using (var uploadStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))

{
// Update the file id, with new metadata and stream.
var updateRequest = ds.Files.Update(updateFileBody, fileId, uploadStream, MIME);
var result = await updateRequest.UploadAsync(CancellationToken.None);

uploadStream.Flush();
uploadStream.Close();

}
} catch (Exception EE)
{
string h = EE.Message;
}
}
Как мне кажется, может случиться так, что после вызова обновления через Drive.service, установленный с Google Диском с помощью updateRequest, процесс останавливается на моем сайте и теряет возможность поднимите нить. Но я понятия не имею, почему. Обновление происходит, но мне нужно получить ответ на клиенте, потому что после потери потока приложение становится неактивным и не реагирует ни на какие события.
Схема описанного процесса такова: следует:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... nt-sending
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»