Bilal Ahmed Ответов: 2

Клиент WCF службы не выбрасывайте сессии релиз убивать и т. д. Я прервать (), но они не работают сессии живут до сих пор.


IncidentManagementClient IM = Connection.Connect();


Моя логика здесь работает отлично.

 response = IM.RetrieveIncidentKeysList(request);
IM.Abort(); 
return response;


Что я уже пробовал:

После получения ответа я хочу убить, утилизировать или освободить приложение Session form Service manager, но они не работают. вы можете мне помочь?

2 Ответов

Рейтинг:
1

Bilal Ahmed

try
                {
                    
                    RetrieveIncidentKeysListResponse response = new 
                    RetrieveIncidentKeysListResponse();
                    RetrieveIncidentKeysListRequest request = new 
                    RetrieveIncidentKeysListRequest();
                    request.model = new IncidentModelType();
                    request.model.keys = new IncidentKeysType();
                    request.model.instance = new IncidentInstanceType(); 
                    request.model.instance.IMTicketStatus = new 
                    ServiceReference1.StringType();
                    request.model.instance.IMTicketStatus.Value = "Open";
                    request.model.instance.OutageFlag = new 
                    ServiceReference1.BooleanType();
                    request.model.instance.OutageFlag.Value = true;
                    request.model.instance.Domain = new ServiceReference1.StringType();
                    request.model.instance.Domain.Value = "MMnBB"; 

                    response = IM.RetrieveIncidentKeysList(request); 
                    return response;
                }
                catch (Exception ex)
                {
                    string Text3Write = "Problem Occurred With Incident Data Retrieval 
                    Based on DB rules";

                    using (StreamWriter sw = File.AppendText(path))
                    {
                        sw.WriteLine(Text3Write);
                        sw.WriteLine("Exception Occurred :" + ex.ToString());
                    }
                }


Вот мой код в try and catch :) но IM.Close(); не работает здесь они ведут себя как abort(); я не знаю почему ?


mvdk72

Вы закрываете соединение в блоке Try? И если да, то какое исключение генерируется? Это может дать вам ключ к пониманию того, что происходит и, возможно, почему

Bilal Ahmed

Возникла проблема с извлечением данных инцидентов на основе правил БД
Произошло Исключение :Система.Сервис-модель.Безопасность.MessageSecurityException: HTTP-запрос неавторизован с помощью схемы аутентификации клиента "Basic". Заголовок аутентификации, полученный от сервера, был 'Basic realm="CASM".- - - > System.Net.WebException: удаленный сервер вернул ошибку: (401) Unauthorized.
в System.Net.HttpWebRequest.GetResponse()
в системе.Сервис-модель.Каналы.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(таймаут времени )
--- Конец внутренней трассировки стека исключений ---


Это исключение генерируется

mvdk72

Очевидно, у вас проблемы с безопасностью. Что - то не так в привязке между клиентом и сервером. Клиент не имеет права запрашивать эти данные. Поэтому следующий шаг-изучить требования на стороне сервера и убедиться, что клиентская сторона соответствует этим требованиям (это может быть имя пользователя/пароль или, возможно, сертификат клиента)

Рейтинг:
0

mvdk72

Обычно вы закрываете соединение с помощью функции "IM.Close()" IM.Abort() используется, когда по какой-то причине соединение нарушено. Кроме того, лучше использовать такие соединения в блоке Try..Catch