كيفية التعامل مع ملفات SalesForce WSDL الخاصة بوضع الحماية ومواقع الإنتاج في ASP.Net؟

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

  •  07-07-2019
  •  | 
  •  

سؤال

أحتاج إلى مصادقة المستخدمين والحصول على معلومات عنهم من تطبيق ASP.Net.نظرًا لأن لدي موقعين (وضع الحماية والإنتاج) ومعرفي مؤسسة - كنت بحاجة إلى إنشاء ملفين من ملفات SalesForce WSDL.

لقد قمت بتفريق الملفين (حجم كل منهما حوالي 600 كيلو بايت) وعلى الرغم من أنهما متماثلان بنسبة 95%، إلا أن هناك اختلافات كافية متناثرة في كل مكان - وهو ما يكفي بالنسبة لي لاستخدامهما معًا.لقد أضفت كلاهما كمراجع ويب إلى الحل الخاص بي، وهنا تبدأ مشكلتي.

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

سؤالي:هل هناك أي طريقة للقيام واحدة أو أكثر من ما يلي:

  1. تغيير مرجع الويب على الطاير؟
  2. هل تستخدم كلا مرجعي الويب في نفس الملف، ولكن تضع أحدهما في مساحة اسم مختلفة؟
  3. العثور على حل أفضل للوضع برمته؟لقد وجدت ملف XmlSerializer.dll ضخمًا (3 ميجابايت!) - ربما بسبب استخدام ملفي WSDL الضخمين.

شكرا على وقتك.

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

المحلول

في الواقع، كان الحل أسهل بكثير وكان مختبئًا تحت أنفي.
أنا فقط بحاجة للاستخدام الأسماء المستعارة لمساحة الاسم.بهذه الطريقة، يمكنني تضمين كلتا الخدمتين في وقت الترجمة، وتحديد أيهما سأستخدمه في وقت التشغيل:

using System.Web;
.
using ProductionAPI = MyCompany.SForce;
using SandboxAPI = MyCompany.SForce.Sandbox;
.
.
.
if(isSandbox)
  binding = new SandboxAPI.SForceService();
else
  binding = new ProductionAPI.SForceService();
.
.
.

نصائح أخرى

ربما أفتقد شيئًا ما ولكن سأحاول الإجابة:

1 أفترض أنك تقصد عنوان URL؟نعم يمكنك ذلك عند إنشاء كائن العميل

var service = new Acmeco.AcmecoService();
service.Url = "oneUrlOrTheOther;   

2 ماذا تقصد؟عند إضافة المرجع، يجب عليك إعطاؤه اسمًا يضعه في مساحة اسم فريدة.مثل Acmeco في المثال السابق.

3 هذا النوع يعتمد على ما هو الفرق الذي ذكرته بنسبة 5٪؟لا أفهم تمامًا كيف ينتهي بك الأمر إلى وجود اختلاف في WSDL لنفس خدمة الويب على مضيفين مختلفين.أعتقد أن العناوين فقط ستكون مختلفة ولكن الأساليب والمعلمات ستبقى كما هي.ربما يمكنك توضيح؟

ما هو الفرق بينهم؟أظن أن الأمر مجرد أن SalesForce.com قابل للتخصيص بدرجة كبيرة، بحيث لا يكون وضع الحماية الخاص بك ومواقع الإنتاج متطابقين.الاثنان يحتاج لتكون متطابقة إذا كنت ستستفيد من القدرة على استخدام موقع الحماية للاختبار.

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