2012-07-02 17 views
6

के साथ लेनदेन मैं समझता हूं कि हल्के आरईएसटी आधारित अनुप्रयोगों को लागू करने में सहायता के लिए एएसपी.नेट वेब एपीआई बनाया गया है। हालांकि, मुझे लेनदेन के हिस्से/लेनदेन का हिस्सा बनने के लिए मेरी आरईएसटी सेवाओं की आवश्यकता है। मैंने चारों ओर देखने की कोशिश की, लेकिन ऐसा लगता है कि क्लाइंट द्वारा शुरू किए गए लेनदेन के हिस्से के रूप में वेब एपीआई को सूचीबद्ध करने का कोई तरीका नहीं है। क्या इसे करने का कोई तरीका है?एएसपीनेट वेब एपीआई

संबंध जगदीश

+0

आप लेनदेन पर क्या विचार करते हैं? काम की एक सामान्य इकाई? एक 'डीबीट्रांसक्शन' या 'एसक्लट्रांसक्शन'? – jrummell

+0

मैं डीटीसी द्वारा प्रबंधित लेनदेन को देख रहा था, लेकिन ऐसा लगता है कि वेब एपीआई – user1496864

उत्तर

4

मेरा मानना ​​है कि आप वितरित लेनदेन (एमएसडीटीसी के माध्यम से) का जिक्र कर रहे हैं जो सेवा सीमाओं पर प्रचार कर सकता है।

हालांकि, डब्ल्यूसीएफ रीस्टफुल सेवाओं पर वितरित लेनदेन संभव नहीं है क्योंकि सादा HTTP अनुरोधों पर लेनदेन राज्य को प्रसारित करने और प्रबंधित करने का कोई तरीका नहीं है।

आप HTTP (wsHttp बाइंडिंग) या टीसीपी/आईपी (net.tcp) पर सादे डब्ल्यूसीएफ सेवाओं को देखना चाहते हैं, या यहां तक ​​कि WCF Data Services पर एक नज़र डालें।

4

लेनदेन में सेवा कॉल Enlisting आम तौर पर एक सोप व्यवहार के रूप में नहीं एक बाकी व्यवहार के बारे में सोचा है। कम से कम एसओएपी के साथ ऐसा करने का मानकीकृत तरीका है जिसे डब्ल्यूएस-परमाणु ट्रान्सएक्शन कहा जाता है।

होने के नाते सोप उन्मुख, इस स्पष्ट ASP.Net वेब एपीआई द्वारा समर्थित नहीं है, लेकिन यह समर्थित है WCF

http://msdn.microsoft.com/en-us/library/ms730266

से यह बाकी में अपने आप को समान एक समान व्यवहार लागू करने के लिए संभव हो जाएगा, लेकिन यह विश्वसनीय रूप से करने के लिए अपेक्षाकृत जटिल है।

+0

+1 को तेजी से होने के लिए समर्थन नहीं करता है ... और दाएं :) –

+0

"लेकिन यह विश्वसनीय रूप से करने के लिए अपेक्षाकृत जटिल है।" - अगर हम इसे लागू करना चाहते हैं तो दृष्टिकोण क्या होगा? – user1496864

11

यदि आप तार के दोनों सिरों को नियंत्रित करते हैं, तो आप जो चाहते हैं उसे हासिल करना संभव है।

TransactionInterop कक्षा एमएस डीटीसी का लाभ उठाने, प्रक्रिया सीमाओं के बीच लेनदेन के साथ काम करने के लिए समर्थन प्रदान करने के लिए मौजूद है। यह एक टोकन जो मौजूदा प्रक्रिया के बाहर लेन-देन का प्रचार करने के लिए किया जा सकता हो जाता है -

  • GetTransmitterPropagationToken:

    यह दो तरीकों से अपने परिदृश्य के लिए दिलचस्प होते हैं।

  • GetTransactionFromTransmitterPropagationToken - यह एक प्रचार टोकन लेता है और स्थानीय सेवा में लेनदेन के निर्माण के लिए इसका उपयोग करता है।

आप लेनदेन उत्पन्न करने के लिए अपने क्लाइंट में पहली विधि का उपयोग कर सकते हैं। आप इसे कस्टम हेडर वैल्यू या कुकी के रूप में अपनी सेवा में पास करने के लिए सेट कर सकते हैं। एक बार सेवा पर, आप स्थानीय रूप से लेनदेन बनाने के लिए दूसरी विधि का उपयोग कर सकते हैं।

इस के लिए प्रमुख चेतावनी यह है कि एमएस डीटीसी को क्लाइंट और सर्वर पर सक्षम और कॉन्फ़िगर करने की आवश्यकता होगी। यह केवल वास्तव में प्राप्त करने योग्य है यदि आपकी सेवाओं को Windows सक्रिय निर्देशिका डोमेन में शामिल किया जा रहा है।

संबंधित मुद्दे