Выполнение прерывания основного приложения ASP. net. - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть ASP. net веб-приложение, которое порождает процесс (в потоке). Этот поток вызывает «.dll» для подключения к другой «подсистеме».
Проблема в том, что при возникновении ошибок при подключении к «подсистеме» это влияет на мое основное приложение (основной пользовательский интерфейс), и я получаю сообщение «Отказано в соединении» ». Я уже вставил в свой поток процедуры обработки ошибок «try-catch». К вашему сведению, я хотел бы рассматривать нить как ветку «Запусти и забудь». При нажатии на btnSubmit поток создается. Пожалуйста, обратитесь к урезанному фрагменту кода.

защищенный void btnSubmit_Click (отправитель объекта, EventArgs e) {

try
{
    txt_hide.Value = sStatus;
    if (sStatus == "")
    {
        //create thread for posting
        id = Guid.NewGuid();
        Thread th = new Thread(() => postXMLClass.PostXML(sSeqNo));     
        th.Start();  

        sStatus = "Transaction generated..please check posting status..";
        lblMessage.Text = "Transaction Generated...";

    }
    else
    {
        FormView1.DataBind(); //refresh the form 
        clib.Show2("Error generating transaction : " + sStatus, sender);
        lblMessage.Text = "Error generating transaction : " + sStatus;
    }
}
catch (SqlException ex)
{
    lblMessage.Text = "Error generating transaction ...: " + ex.Message;
}
catch (Exception ex)
{
    //sqc.Transaction.Rollback();
    lblMessage.Text = "Error encountered...: " + ex.Message;
    throw;
}
finally
{
    if (dbc != null) dbc.Dispose();
    if (clib != null) clib.Dispose();
}

}

publi c stati c void Post XML (строка inlinkcode) {

string sToken = "", sXMLOut = "";
Xml.Router.XMLRouter cX = new Xml.Router.XMLRouter();
try
{
    cX.set_Options("com.xml.router.nameServer", appSetArray[0]);
    cX.set_Options("com.xml.router.nameServerPort", appSetArray[2]);
    cX.set_Options("com.xml.router.logicalServerName", appSetArray[1]);
    {          
        sLinkcode = inlinkcode;
        if (sLinkcode != null && sLinkcode != "")
        {
            strxml = "<?xml version=\"1.0\" encoding='UTF-8' ?>";
            strxml += "<TableLinkRequest version=\"1.0\"><DocumentLinkStart><Request><StartParams>";
            strxml += "<CmpCode>X</CmpCode><DocCode></DocCode></TableLinkRequest>";
            sXMLOut = cX.Send(sToken, strxml);
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine("Exception {0}", ex.Message);
}
finally
{
    if (cX != null) cX.Logoff(sToken);
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...