首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF是否支持WS-Eventing?

WCF是否支持WS-Eventing?
EN

Stack Overflow用户
提问于 2008-09-20 04:17:31
回答 3查看 2.6K关注 0票数 3

我知道WCF支持许多WS-*协议,但似乎列出了WS-Eventing。

我知道WCF有一个发布/订阅模型,但是它符合WS-Eventing吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-09-20 04:27:12

我似乎记得不久前在CodeProject上读过这篇文章。

抱歉,我帮不了你,但是罗曼之吻的this is the article

票数 3
EN

Stack Overflow用户

发布于 2010-11-15 22:24:33

至少使用WCF4,您可以通过导入WS-Eventing wsdl (使用soap绑定)来简单地创建一个WSDL客户端。它需要双工绑定,因此http双工或简单tcp都可以工作。问题是添加了正确的回调。对我们来说,这样做是可行的

代码语言:javascript
复制
                            Subscribe s = new Subscribe();
                        (s.Delivery = new DeliveryType()).Mode = "http://schemas.xmlsoap.org/ws/2004/08/eventing/DeliveryModes/Push";

                        XmlDocument doc = new XmlDocument();
                        using (XmlWriter writer = doc.CreateNavigator().AppendChild())
                        {
                            EndpointReferenceType notifyTo = new EndpointReferenceType();

                            (notifyTo.Address = new AttributedURI()).Value = callbackEndpoint.Uri.AbsoluteUri;

                            XmlRootAttribute notifyToElem = new XmlRootAttribute("NotifyTo");
                            notifyToElem.Namespace = "http://schemas.xmlsoap.org/ws/2004/08/eventing";

                            XmlDocument doc2 = new XmlDocument();                                    
                            using (XmlWriter writer2 = doc2.CreateNavigator().AppendChild())
                            {
                                XmlRootAttribute ReferenceElement = new XmlRootAttribute("ReferenceElement");
                                foreach(AddressHeader h in callbackEndpoint.Headers)
                                {
                                    h.WriteAddressHeader(writer2);  
                                }

                                writer2.Close();
                                notifyTo.ReferenceParameters = new ReferenceParametersType();
                                notifyTo.ReferenceParameters.Any = notifyTo.ReferenceParameters.Any = doc2.ChildNodes.Cast<XmlElement>().ToArray<XmlElement>();               
                            }

                            new XmlSerializer(notifyTo.GetType(), notifyToElem).Serialize(writer, notifyTo);
                        }

                        (s.Delivery.Any = new XmlElement[1])[0] = doc.DocumentElement;
                        (s.Filter = new FilterType()).Dialect = "http://schemas.xmlsoap.org/ws/2006/02/devprof/Action";
                        (s.Filter.Any = new System.Xml.XmlNode[1])[0] = new System.Xml.XmlDocument().CreateTextNode("http://www.teco.edu/SensorValues/SensorValuesEventOut");

                        SubscribeResponse subscription;
                        try
                        {
                            Console.WriteLine("Subscribing to the event...");
                            //Console.ReadLine();
                            subscription = eventSource.SubscribeOp(s);
                        }
票数 1
EN

Stack Overflow用户

发布于 2009-03-03 12:14:06

在WCF 3.0中没有原生的发布/订阅模型,但是有一些选项。

MSDN Mag)

  • Juval Lowy有两个框架实现,你可以在他的网站IDesign

  • Lastly上下载,我目前使用的是
  • ,开销很小。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/107079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档