2012-02-03 16 views
5

के तहत चल रहे एएसपी.NET के साथ आईट्यून्स को नियंत्रित करना मैं सफलता के विभिन्न स्तरों के साथ एएसपी.नेट के साथ आईट्यून्स को नियंत्रित करने की कोशिश कर रहा हूं, लेकिन कोई भी मेरी स्थिति को ठीक से फिट नहीं करता है। मैंने वेब के चारों ओर देखा है और बिना किसी किस्मत के सभी प्रदत्त समाधानों का प्रयास किया है। मैंने कई अलग-अलग आईट्यून्स COM पुस्तकालयों (यहां तक ​​कि ऐप्पल की डेवलपर वेबसाइट पर भी एक) का उपयोग करने की कोशिश की है, अभी भी कोई भाग्य नहीं है। मुद्दा यह है कि, जब मैं iTunes COM ऑब्जेक्ट का उदाहरण बनाने के लिए विजुअल स्टूडियो के विकास सर्वर का उपयोग कर रहा हूं - iTunesApp - यह पूरी तरह से काम करता है और मुझे आईट्यून्स को नियंत्रित करने की अनुमति देता है। यह कंसोल और WinForms ऐप में पूरी तरह से काम करता है। लेकिन जैसे ही मैं इसे आईआईएस सर्वर का उपयोग करने के लिए स्विच करता हूं, कुछ भी काम नहीं करता है। मुझे इसे एएसपी.नेट के तहत वेबसाइट के रूप में चलाने की आवश्यकता है ताकि यह अन्य उपकरणों से अनुरोध प्राप्त कर सके। आईट्यून्स के आस-पास एक वेब-आधारित एपीआई को नियंत्रित करने और अनिवार्य रूप से एक वेब ऐप बनाने के लिए इसकी जबरदस्त क्षमता है। यह iTunesApp वर्ग का एक नया उदाहरण के निर्माण पर निम्न त्रुटि फेंकता है:आईआईएस

Retrieving the COM class factory for component with CLSID {DC0C2640-1415-4644-875C-6F4D769839BA} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

सबसे पहले मैं iTunes.Interop.dll फ़ाइल है कि वेब के आसपास परियोजनाओं में से कई में प्रयोग किया जाता है का उपयोग कर रहा था। मैंने भाग्य के बिना कई बार कोशिश की और फिर डीएलएल को पंजीकृत करने का प्रयास किया, जिसने डीएलएल में प्रवेश बिंदु नहीं ढूंढने के बारे में एक त्रुटि फेंक दी। तो मैंने पाया कि आपको एप्लिकेशन पूल पहचान की अनुमति देना है कि वेब ऐप विंडोज कंपोनेंट सर्विसेज में डीसीओएम सेवा को acces और निष्पादित करने के तहत चल रहा है। मैंने ऐसा किया, और हर किसी के लिए भी पहुंच प्रदान की, अभी भी कुछ भी नहीं। फिर मैंने आईट्यून्स द्वारा स्थापित COM लाइब्रेरी का उपयोग करने का प्रयास किया (जब आप डीएलएल फ़ाइल पर ब्राउज़ करने के बजाय संदर्भ जोड़ने के लिए जाते हैं, तो मैं COM टैब के तहत चला गया और आईट्यून्स टाइप लाइब्रेरी चयनित), कोई किस्मत नहीं। मुझे संदेह है कि जब मैंने विंडोज डीसीओएम घटक को अनुमति दी, तो मैंने स्थापित आईट्यून्स COM लाइब्रेरी को अनुमति दी क्योंकि विंडोज़ ने मान्यता दी है कि स्थापित (और मैं मूल iTunes.Interop.dll पंजीकृत नहीं कर सका - विंडोज़ नहीं जानता था कि यह था क्या आप वहां मौजूद हैं)।

दोनों स्थापित आईट्यून्स प्रकार लाइब्रेरी और iTunes.Interop.dll फ़ाइल, ने मुझे वही उपरोक्त त्रुटि दी। आश्चर्यजनक रूप से, (DC0C2640-1415-4644-875C-6F4D769839BA) त्रुटि में सीएलएसआईडी आईट्यून्स की "एप्लिकेशन आईडी" से मेल नहीं खाता है, क्योंकि इसे घटक सेवा \ DCOM \ iTunes \ Properties विंडो में कहा जाता है, जो F98206B5-F052-4965-9FA0-85F61BC3C19D है। मेरा संदेह यह है कि मैं विंडोज़ में सही डीसीओएम घटक को अनुमति नहीं दे रहा हूं। मैंने त्रुटि में सीएलएसआईडी के लिए अपनी रजिस्ट्री की खोज की और यह कोई परिणाम नहीं देता है, इसलिए मैंने निष्कर्ष निकाला कि यह किसी भी DCOM घटकों की एप्लिकेशन आईडी नहीं है (सभी एप्लिकेशन आईडी Computer\HKEY_CLASSES_ROOT\Wow6432Node\AppID के अंतर्गत हैं - इसे वहां नहीं मिला)। लेकिन चूंकि यह त्रुटि में सीएलएसआईडी है, इसे कहीं से संदर्भित किया जाना चाहिए, मैं इसे कहीं भी नहीं ढूंढ सका। Google पर आईडी के लिए खोज करना सहायक नहीं है क्योंकि वे दोनों खोज परिणामों को वापस करते हैं जिनमें आईट्यून्स शामिल हैं, लेकिन समस्या के लिए पर्याप्त विशिष्ट नहीं है।

मैंने बहुप्रचारित दृष्टिकोण की भी कोशिश की। चूंकि एमटीए में चलाए गए एसटीए मॉडल और वेब सर्वर में COM पुस्तकालय चलाते हैं, इसलिए मैंने पाया कि समाधानों में से एक सर्वर के थ्रेड निष्पादन मॉडल को एसटीए में परिवर्तित करने के लिए सुझाव दिया गया है और फिर COM लाइब्रेरी को कॉल करता है। यह या तो काम नहीं किया। मैंने इस समस्या को पूरी तरह से स्वतंत्र 2 कंप्यूटरों पर डुप्लिकेट किया है, और दोनों कंप्यूटरों पर, विजुअल स्टूडियो डेवलपमेंट सर्वर (और कंसोल और विनफॉर्म एप्लिकेशन) इसे चला सकते हैं, लेकिन आईआईएस नहीं कर सकता।

यहाँ (बहु सूत्रण के बिना) कोड मैं का उपयोग कर रहा है: var iTunes = new iTunesApp();

तो बहु कोड में मदद मिलेगी, मैं वह भी पोस्ट कर सकते हैं:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Security.Principal; 
using System.Threading; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using iTunesLib; 


namespace NewASPXNetduino2 
{ 
     public partial class _Default : System.Web.UI.Page 
     { 
       protected void Page_Load(object sender, EventArgs e) 
       { 
         Response.Write(WindowsIdentity.GetCurrent().Name + "\n"); 

         var iTunes = new iTunesApp(); 

         iTunes.Play(); 
       } 
     } 
} 

त्रुटि लाइन पर फेंक है। मैं इस बिंदु पर काफी दिशाहीन हूं और किसी भी क्षमता में किसी भी मदद की सराहना करता हूं। धन्यवाद।

पीएस .: मैंने पहले से ही इंटरनेट के चारों ओर देखा है और कई कंप्यूटरों पर कई बार ऊपर बताए गए सभी समाधानों का प्रयास किया है, इसलिए कृपया जवाब देने पर इसे ध्यान में रखें। धन्यवाद।

उत्तर

1

मुझे आईट्यून पुस्तकालयों के साथ कोई अनुभव नहीं है, लेकिन आपके द्वारा वर्णित लक्षण मुझे सुरक्षा समस्या की तरह लगते हैं। आईआईएस स्थानीय खाते NETWORK_SERVICE के रूप में चल रहा है, जबकि आपने जो कुछ भी बताया है वह है (शायद) एक नियमित उपयोगकर्ता खाता (आपका) के रूप में चल रहा है।

आईआईएस मैनेजर में, इसे तुरंत जांचने के लिए आप एप्लिकेशन पूल का उपयोग कर सकते हैं (यह पहचान टैब के अंतर्गत है)। यदि यह काम करता है, तो आपको या तो यह पता लगाने की आवश्यकता है कि सुरक्षा जांच क्या कर रही है और देखें कि क्या आप नेटवर्क्स_SERVICE को वैध खाते के रूप में अधिकृत कर सकते हैं या बस एक अलग खाते का उपयोग करके एप्लिकेशन पूल चला सकते हैं।

+0

हाँ मैंने सोचा कि यह पहली बार भी मुद्दा था, लेकिन इसका कोई फायदा नहीं हुआ। मैंने अपने नियमित खाते (जिसमें व्यवस्थापक पहुंच है), स्थानीय सिस्टम, प्रशासक, और स्थानीय सेवा सहित कई अलग-अलग खातों के तहत एप्लिकेशन पूल चलाने की कोशिश की है। इनमें से कोई भी काम नहीं कर रहा है। मैंने COM घटक को किसी भी खाते के तहत चलाने की अनुमति देने के लिए भी सेट किया है, और मैंने ऊपर वर्णित प्रत्येक विशिष्ट खातों के तहत इसे चलाने के लिए इसे सेट करने का प्रयास किया है। यदि आप इसे आईआईएस के तहत किसी भी परिस्थिति में चलाने के लिए प्राप्त कर सकते हैं, तो कृपया वापस पोस्ट करें कि आपने यह कैसे किया और आपकी सेटिंग्स क्या थीं। धन्यवाद – Anshul

+0

मैंने सेवाओं में जाने और आईआईएस कार्यकर्ता प्रक्रिया (w3wp.exe) और आईआईएस को अपने व्यवस्थापक खाते के तहत चलाने के लिए भी सेट करने का प्रयास किया है, लेकिन अभी भी कोई भाग्य नहीं है। – Anshul