سؤال

هل هناك طريقة مباشرة الاستعلام خدمة ويب لمشاهدة الرسائل التي انها تؤيد ؟ C# .NET أنا أعمل على يجب أن يكون قادرا على التعامل مع نسخة قديمة من خدمة ويب التي لا تنفذ الرسالة أحاول أن أرسل.خدمة ويب لا يعرض رقم الإصدار ، لذلك الخطة " ب " هو أن نرى إذا كانت الرسالة المحددة.

أفترض أنا يمكن أن مجرد تقديم طلب HTTP من أجل WSDL وتحليل ذلك ، ولكن قبل أن تذهب في هذا الطريق ، أريد أن تأكد من أن ليس هناك أبسط النهج.

تحديث:لقد قررت أن تحصل على WSDL والحصول على رسائل مباشرة.ها هي مسودة للحصول على جميع الرسائل:

HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create( "http://your/web/service/here.asmx?WSDL" );
webRequest.PreAuthenticate = // details elided
webRequest.Credentials = // details elided
webRequest.Timeout = // details elided
HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse();

XPathDocument xpathDocument = new XPathDocument( webResponse.GetResponseStream() );
XPathNavigator xpathNavigator = xpathDocument.CreateNavigator();

XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager( new NameTable() );
xmlNamespaceManager.AddNamespace( "wsdl", "http://schemas.xmlsoap.org/wsdl/" );

foreach( XPathNavigator node in xpathNavigator.Select( "//wsdl:message/@name", xmlNamespaceManager ) )
{
    string messageName = node.Value;
}
هل كانت مفيدة؟

المحلول

أنا متأكد WSDL هي الطريقة للقيام بذلك.

نصائح أخرى

تحليل WSDL هو على الارجح أبسط طريقة للقيام بذلك.باستخدام رأس المال العامل ، ومن الممكن أيضا لتحميل WSDL في وقت التشغيل ، أساسا تشغيل svcutil على ذلك من خلال الكود, و ينتهي مع ديناميكيا بروكسي يمكنك التحقق من هيكل.انظر http://blogs.msdn.com/vipulmodi/archive/2006/11/16/dynamic-programming-with-wcf.aspx على سبيل المثال من وقت تشغيل المولدة الوكيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top