SPML (لغة توفير خدمة الخدمة) / C#.NET مساعدة من فضلك!

StackOverflow https://stackoverflow.com/questions/4089048

  •  28-09-2019
  •  | 
  •  

سؤال

آسف على التسول تقريبًا للحصول على المساعدة هنا ، لكن تم تكليفه بالعمل على ما سبق ولا يمكنني العثور على أي موارد كافية لمساعدتي. ها هي التفاصيل:

  1. لدى الشركة برنامج لإدارة الهوية الذي يوفر "خلاصة" SPML (SOAP) للتغييرات على معارات المستخدم

  2. (إذا حصلت على هذا بشكل صحيح) يقدم برنامج تشغيل SPML طلبًا آخر إلى عنوان URL على الخادم الذي يرسل هذه التغييرات

  3. كل ما يجلس تحت عنوان URL هذا يجب أن يعالج المعلومات المنشورة (XML)

النقطة 3 هي بيتي. ليس لدي أي فكرة عما أكتب. ASMX؟ ASPX؟ ASHX؟ Commodore 64 شريط كاسيت؟ يبدو أن برنامج تشغيل SPML يحتاج إلى 200 استجابة - سوف يحصل على ذلك على أي حال عندما تحدث المعالجة لا؟ هل هناك أي شيء آخر لا أحصل عليه؟

أي مساعدة أو مؤشرات أو إرشادات أو تقديم المشورة لي بالتخلي عن هواية جديدة ، ستكون موضع تقدير كبير.

شكرًا.

تعديل..............

حصلت على برنامج تشغيل SOAP بسيط (لأغراض الاختبار) الذي ينشر XML إلى صفحة ASPX التي ، بدورها ، تستهلك المنشور ويحفظ XML. بفضل J Benjamin (أدناه) و http://www.eggheadcafe.com/articles/20011103.asp لبدء.

برنامج تشغيل الصابون (يعمل في تحميل الصفحة)

protected void Page_Load(object sender, EventArgs e)
{    
    XmlDocument doc = new XmlDocument();
    doc.Load(MySite.FileRoot + "testing\\testxml.xml");
    HttpWebRequest req = 
    (HttpWebRequest)WebRequest.Create("http://localhost/mysite/testing/reader.aspx");
    req.ContentType = "text/xml; charset=\"utf-8\"";
    req.Method = "POST";
    req.Headers.Add("SOAPAction", "\"\"");
    Stream stm = req.GetRequestStream();
    doc.Save(stm);
    stm.Close();
    WebResponse resp = req.GetResponse();
    stm = resp.GetResponseStream();
    StreamReader r = new StreamReader(stm);
    Response.Write(r.ReadToEnd());
}

قارئ الصابون (يقرأ XML المنشور عند استدعائه)

protected void Page_Load(object sender, EventArgs e)
{
    String Folderpath = "c:\\TestSOAP\\";
    if (!Directory.Exists(Folderpath))
    {
        Directory.CreateDirectory(Folderpath);
    }
    Response.ContentType = "text/xml";
    StreamReader reader = new StreamReader(Request.InputStream);
    String xmlData = reader.ReadToEnd();
    String FilePath = Folderpath + DateTime.Now.ToFileTimeUtc() + ".xml";
    File.WriteAllText(FilePath, xmlData);

}

الخطوة التالية هي محاولة استهلاك خدمة SPML (وهو شيء من نوع Novell الذي يحركه Java) - إذا كان لدي أي مشاكل ، فسوف أعود إلى هنا !!

شكرا لكم جميعا.. :)

هل كانت مفيدة؟

المحلول

ربما أسيء فهمه ، لكن هذا يبدو مشابهًا لكيفية التعامل مع عناوين URL في خدمة الويب الخاصة بي. نحن نتعامل مع المنطق بناءً على عناوين URL ، ونقوم بالمنطق ، ولفه في XML ونستجيب مع كائن XML. إليك مثال بسيط (بسيط ، أعني أحد القلائل التي لا تتطلب المصادقة)

الكود أدناه يعيد ببساطة كائن XML يحتوي على تطبيق تطبيق. استجابة XML أدناه أيضًا (مع إزالة بعض قيم التعريف).

        [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "External/Application/{ApplicationGUID}/APIHost/")]
    public Response GetAPIHostName(Request request, string ApplicationGUID)
    {
        Response response = new Response();
        try
        {
            APIHost apiHost = new APIHost
                                          {
                                              APIHostname = System.Configuration.ConfigurationManager.AppSettings["PlayerAPIHostname"]
                                          };
            response.ResponseBody.APIHost = apiHost;
            response.ResponseHeader.UMResponseCode = (int) UMResponseCodes.OK;
        }
        catch (GUIDNotFoundException guidEx)
        {
            response.ResponseHeader.UMResponseCode = (int)UMResponseCodes.NotFound;
            response.ResponseHeader.UMResponseCodeDetail = guidEx.Message;
        }
        catch (Exception ex)
        {
            UMMessageManager.SetExceptionDetails(request, response, ex);
            if (request != null)
                Logger.Log(HttpContext.Current, request.ToString(), ex);
            else
                Logger.Log(HttpContext.Current, "No Request!", ex);
        }
        response.ResponseHeader.HTTPResponseCode = HttpContext.Current.Response.StatusCode;
        return response;
    }

/"xmlns: xsd =" http://www.w3.org/2001/xmlschema "xmlns: xsi =" http://www.w3

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