Наследование: IServiceMessage
Пример #1
0
        /// <summary>
        /// Asynchronously calls the FindServers service.
        /// </summary>
        public virtual IAsyncResult BeginFindServers(FindServersMessage message, AsyncCallback callback, object callbackData)
        {
            try
            {
                // check for bad data.
                if (message == null) throw new ArgumentNullException("message");

                // set the request context.
                SetRequestContext(RequestEncoding.Xml);

                // create handler.
                ProcessRequestAsyncResult result = new ProcessRequestAsyncResult(this, callback, callbackData, 0);
                return result.BeginProcessRequest(SecureChannelContext.Current, message.FindServersRequest);
            }
            catch (Exception e)
            {
                throw CreateSoapFault(message.FindServersRequest, e);
            }
        }
Пример #2
0
        /// <summary>
        /// The operation contract for the FindServers service.
        /// </summary>
        public virtual FindServersResponseMessage FindServers(FindServersMessage request)
        {
            FindServersResponse response = null;

            try
            {
                // OnRequestReceived(message.FindServersRequest);

                SetRequestContext(RequestEncoding.Xml);
                response = (FindServersResponse)FindServers(request.FindServersRequest);
                // OnResponseSent(response);
                return new FindServersResponseMessage(response);
            }
            catch (Exception e)
            {
                Exception fault = CreateSoapFault(request.FindServersRequest, e);
                // OnResponseFaultSent(fault);
                throw fault;
            }
        }
Пример #3
0
 /// <summary>
 /// The operation contract for the FindServers service.
 /// </summary>
 public virtual FindServersResponseMessage FindServers(FindServersMessage request)
 {
     try
     {
         SetRequestContext(RequestEncoding.Xml);
         FindServersResponse response = (FindServersResponse)FindServers(request.FindServersRequest);
         return new FindServersResponseMessage(response);
     }
     catch (Exception e)
     {
         throw CreateSoapFault(request.FindServersRequest, e);
     }
 }
Пример #4
0
        /// <summary>
        /// Returns the servers known to the discovery endpoint.
        /// </summary>
        public FindServersResponseMessage FindServers(FindServersMessage request)
        {
            lock (m_lock)
            {
                // update the list of supported endpoints by looking in the service description associated with the host.
                InitializeApplicationDescription();

                FindServersResponseMessage response = new FindServersResponseMessage();

                response.ResponseHeader = CreateResponseHeader(request.RequestHeader);
                response.Servers = new ListOfApplicationDescription();

                // only one server to return must still must check the filter if specified.
                bool filtered = false;

                if (request.ServerUris != null && request.ServerUris.Count != 0)
                {
                    filtered = true;

                    foreach (string serverUri in request.ServerUris)
                    {
                        if (serverUri == m_application.ApplicationUri)
                        {
                            filtered = false;
                            break;
                        }
                    }
                }

                // return an empty list if no match on the filter.
                if (!filtered)
                {
                    response.Servers.Add(m_application);
                }

                return response;
            }
        }