मैं SQL सर्वर पर एमएसडीटीसी कैसे सक्षम करूं?

क्या यह एक वैध सवाल भी है? मेरे पास एक .NET विंडोज ऐप है जो एमएसटीडीसी का उपयोग कर रहा है और यह एक अपवाद फेंक रहा है:

System.Transactions.TransactionManagerCommunicationException: Network access for Distributed Transaction Manager (MSDTC) has been disabled. Please enable DTC for network access in the security configuration for MSDTC using the Component Services Administrative tool ---> System.Runtime.InteropServices.COMException (0x8004D024): The transaction manager has disabled its support for remote/network transactions. (Exception from HRESULT: 0x8004D024) at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier, Guid& transactionIdentifier, OletxTransactionIsolationLevel& isolationLevel, ITransactionShim& transactionShim)....

मैंने पीसी पर MSDTC सक्षम करने के लिए Kbalertz मार्गदर्शिका का पालन किया जिस पर ऐप इंस्टॉल किया गया है , लेकिन त्रुटि अभी भी होती है।

मैं सोच रहा था कि यह डेटाबेस समस्या थी? यदि हां, तो मैं इसे कैसे हल कर सकता हूं?

0
ro fr bn
यदि उल्लिखित समाधान इस मुद्दे को हल नहीं करते हैं, तो यह लिंक
जोड़ा लेखक Shahab J, स्रोत

6 उत्तर

क्या आपको एमएसडीटीसी की भी आवश्यकता है? आपके द्वारा अनुभव की जा रही वृद्धि अक्सर एक लेनदेनस्कोप के भीतर कई कनेक्शन बनाने के कारण होती है।

यदि आपको इसकी आवश्यकता है तो आपको इसे त्रुटि संदेश में उल्लिखित करने की आवश्यकता है। एक्सपी पर:

  • Go to Administrative Tools -> Component Services
  • Expand Component Services -> Computers ->
  • Right-click -> Properties -> MSDTC tab
  • Hit the Security Configuration button
0
जोड़ा
एकल लेनदेनस्कोप के भीतर कई कनेक्शन बनाने के कारण होने वाली त्रुटि के बारे में टिप्पणी के लिए धन्यवाद। मुझे त्रुटि मिल रही थी और यह वास्तव में समस्या थी। मैं एमएसडीटीसी का उपयोग नहीं करना चाहता था, इसलिए मुझे गलती से नया कनेक्शन मिला और मौजूदा एक का पुन: उपयोग किया। धन्यवाद!
जोड़ा लेखक Jim McKeeth, स्रोत
1) स्थानीय डीटीसी पर राइट क्लिक करें और गुण चुनें 2) सुरक्षा टैब खोलें 3) कम से कम नेटवर्क डीटीसी एक्सेस की जांच करें, दूरस्थ ग्राहकों को अनुमति दें और इनबाउंड को अनुमति दें।
जोड़ा लेखक Rob Sedgwick, स्रोत
मैं विंडोज 7 और 8 पर हूं, और केवल एक "डिफ़ॉल्ट समन्वयक" खंड है। मैं उस सुरक्षा कॉन्फ़िगरेशन पर कहां जा सकता हूं जिसके बारे में आप बात कर रहे हैं?
जोड़ा लेखक qdev76, स्रोत
नीचे दिए गए लिंक का पालन करें: stackoverflow.com/a/27263904/192131
जोड़ा लेखक Tola Odejayi, स्रोत
विंडोज फ़ायरवॉल में भी मैंने पोर्ट 135 टीसीपी खोला और सी: \ windows \ msdtc.exe को अपवाद के रूप में जोड़ा
जोड़ा लेखक Sameer, स्रोत

@Dan,

क्या मुझे msdtc के लिए सक्षम की आवश्यकता नहीं है   काम करने के लिए लेनदेन?

केवल वितरित लेनदेन - वे जिनमें एक से अधिक कनेक्शन शामिल होते हैं। दोगुना सुनिश्चित करें कि आप केवल लेनदेन के भीतर एक ही कनेक्शन खोल रहे हैं और यह बढ़ेगा नहीं - प्रदर्शन भी बेहतर होगा।

0
जोड़ा
लेनदेन के लिए काम करने के लिए मुझे msdtc सक्षम करने की आवश्यकता नहीं है? किसी भी तरह से, जहां तक ​​मुझे पता है, कई कनेक्शन नहीं किए जा रहे हैं। मैंने क्लाइंट पीसी पर पहले से ही उन चरणों को चलाया है, क्या आप कह रहे हैं कि मुझे डेटाबेस सर्वर पर उन चरणों को भी करना चाहिए?
जोड़ा लेखक Dan, स्रोत
@ डैन, यदि आप ado.net लेनदेन का उपयोग कर रहे हैं तो आपको डीटीसी को सक्षम करने की आवश्यकता नहीं है। यदि आप वितरित लेनदेन का उपयोग कर रहे हैं तो आपको सर्वर पर केवल एमएसडीटीसी को सक्षम करने की आवश्यकता है
जोड़ा लेखक Niraj, स्रोत

MSDTC must be enabled on both systems, both server and client.
Also, make sure that there isn't a firewall between the systems that blocks RPC.
DTCTest is a nice litt app that helps you to troubleshoot any other problems.

0
जोड़ा
ww2.sqldev.net/?folio=7POYGN0G2 DTCTest नहीं मिला।
जोड़ा लेखक Kiquenet, स्रोत
मुझे लगता है कि यह नया स्थान है microsoft.com/en-us /download/details.aspx?id=30746
जोड़ा लेखक Air2, स्रोत

नियंत्रण से एमएसडीटीसी चालू करने के तरीके पर यहां भी देख सकते हैं पैनल की सेवाएं.एमसीसी।

On the server where the trigger resides, you need to turn the MSDTC service on. You can this by clicking START > SETTINGS > CONTROL PANEL > ADMINISTRATIVE TOOLS > SERVICES. Find the service called 'Distributed Transaction Coordinator' and RIGHT CLICK (on it and select) > Start.

0
जोड़ा

I've found that the best way to debug is to use the microsoft tool called DTCPing

  1. Copy the file to both the server (DB) and the client (Application server/client pc)
    • Start it at the server and the client
    • At the server: fill in the client netbios computer name and try to setup a DTC connection
    • Restart both applications.
    • At the client: fill in the server netbios computer name and try to setup a DTC connection

मेरे पुराने कंपनी नेटवर्क में मेरी समस्याओं का किराया सौदा हुआ है, और मुझे कुछ सुझाव मिल गए हैं:

  • if you get the error message "Gethostbyname failed" it means the computer can not find the other computer by its netbios name. The server could for instance resolve and ping the client, but that works on a DNS level. Not on a netbios lookup level. Using WINS servers or changing the LMHOST (dirty) will solve this problem.
  • if you get an error "Acces Denied", the security settings don't match. You should compare the security tab for the msdtc and get the server and client to match. One other thing to look at is the RestrictRemoteClients value. Depending on your OS version and more importantly the Service Pack, this value can be different.
  • Other connection problems:
    • The firewall between the server and the client must allow communication over port 135. And more importantly the connection can be initiated from both sites (I had a lot of problems with the firewall people in my company because they assumed only the server would open an connection on to that port)
    • The protocol returns a random port to connect to for the real transaction communication. Firewall people don't like that, they like to restrict the ports to a certain range. You can restrict the RPC dynamic port generation to a certain range using the keys as described in How to configure RPC dynamic port allocation to work with firewalls.

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

0
जोड़ा

विंडोज सर्वर 2008 आर 2 और विंडोज सर्वर 2012 आर 2 के लिए इसका इस्तेमाल करें

  1. प्रारंभ करें क्लिक करें, चलाएं क्लिक करें, dcomcnfg टाइप करें और फिर ठीक क्लिक करें घटक सेवाएं

  2. कंसोल पेड़ में, घटक सेवा का विस्तार करने के लिए क्लिक करें, कंप्यूटर का विस्तार करने के लिए क्लिक करें, मेरा कंप्यूटर विस्तृत करने के लिए क्लिक करें, क्लिक करें वितरित लेनदेन समन्वयक का विस्तार करने के लिए और फिर स्थानीय डीटीसी क्लिक करें।

  3. स्थानीय डीटीसी राइट क्लिक करें और स्थानीय डीटीसी गुण संवाद बॉक्स प्रदर्शित करने के लिए गुण क्लिक करें।

  4. सुरक्षा टैब पर क्लिक करें।

  5. मार्क चेक "नेटवर्क डीटीसी एक्सेस" चेकबॉक्स।

  6. अंत में चिह्नित करें "इनबाउंड को अनुमति दें" और "आउटबाउंड की अनुमति दें" चेकबॉक्स।

  7. लागू करें , ठीक क्लिक करें।

  8. सेवा पुनरारंभ करने सेवा के बारे में पॉप अप हो जाएगी।

  9. ठीक क्लिक करें और यह सब कुछ है।

Reference : https://msdn.microsoft.com/en-us/library/dd327979.aspx

Note: Sometimes the network firewall on the Local Computer or the Server could interrupt your connection so make sure you create rules to "Allow Inbound" and "Allow Outbound" connection for c:\windows\msdtc.exe

0
जोड़ा
@jonazu अब मैंने विंडोज सर्वर 2012 आर 2 के लिए उत्तर अद्यतन किया है :)
जोड़ा लेखक Shiv Singh, स्रोत
विंडोज सर्वर 2012 आर 2 के लिए भी काम करता है। स्पष्ट निर्देशों के लिए धन्यवाद। इसे अपने आप कभी नहीं मिला होगा!
जोड़ा लेखक jonazu, स्रोत
अच्छा काम शिवसिंह!
जोड़ा लेखक Super Coder, स्रोत