मैंने चल रहे TFS सर्वर के लिए वर्कटाइमस्टोर से कनेक्ट करने के दो तरीकों का प्रयास किया है। प्रयास ए कॉन्फ़िगरेशन सर्वर से कनेक्ट करना था और GetService<WorkItemStore>()
विधि का उपयोग करना था। यह हमेशा शून्य देता है।कोई सफलतापूर्वक TFS 2010 वर्कटाइम स्टोर से कैसे जुड़ता है?
प्रयास बी TfsTeamProjectCollection से कनेक्ट करना था और GetService<WorkItemStore>()
विधि का उपयोग करें या प्रोजेक्ट संग्रह को WorkItemStore कंस्ट्रक्टर में पास करें। प्रयास बी पर, मुझे एक अपवाद मिलता है कि "त्रुटि HRESULT E_FAIL को कॉल से COM घटक में वापस कर दिया गया है।" उस पर एकमात्र जानकारी जो मुझे मिल सकती है, कुछ अनुमति समस्याएं इंगित करती है, लेकिन मैंने पुष्टि की है कि मैं पूरे प्रोजेक्ट संग्रह में पढ़ने के लिए उपयोगकर्ता के रूप में प्रमाणित हूं और मैं वीएस 2011 देव पूर्वावलोकन के माध्यम से उचित रूप से कनेक्ट और दखल देता हूं।
यहाँ मैं कैसे जोड़ने हूँ ...
public TfsConfigurationServer GetConfigurationServer()
{
Uri tfsUri = new Uri(configs.TfsUri);
TfsConfigurationServer server = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri, credProvider);
server.Authenticate();
if (server.HasAuthenticated == false)
throw new InvalidOperationException("You can't authenticate against the tfs instance.");
return server;
}
public TfsTeamProjectCollection GetProjectCollectionInstance(string projectCollectionName)
{
Uri tfsUri = new Uri(configs.TfsUri + "/" + projectCollectionName);
TfsTeamProjectCollection collection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tfsUri, credProvider);
collection.Authenticate();
if (collection.HasAuthenticated == false)
throw new InvalidOperationException("You can't authenticate against the tfs instance.");
return collection;
}
और यहाँ कैसे मैं (समस्या को वर्णन करने मूर्खतापूर्ण कोड) WorkItemStore पाने के लिए कोशिश कर रहा हूँ है ...
public WorkItemProvider()
{
if (workItems == null)
workItems = ServerProvider.ServerInstance.GetService<WorkItemStore>();
if (workItems == null)
workItems = ServerProvider.ProjectCollectionInstance.GetService<WorkItemStore>();
if (workItems == null)
workItems = new WorkItemStore(ServerProvider.ProjectCollectionInstance);
if (workItems == null)
throw new NullReferenceException("Couldn't load work item store.");
}
मैं मैं सर्वर के समान डोमेन पर नहीं हूं, लेकिन मैं एक डोमेन उपयोगकर्ता के रूप में प्रमाणीकरण कर रहा हूं जिसमें एक आईसीडेंशियल प्रदाता है और मैंने पुष्टि की है कि मैं उस उपयोगकर्ता के रूप में प्रमाणित हूं। कोई संकेतक सहायक होगा।
अतिरिक्त जानकारी: एक ही कोड विंडोज़ ऑथ और प्रतिरूपण का उपयोग कर हमारे डोमेन में कंप्यूटर पर ठीक काम करता है। मुझे लगता है कि मैं इसे डोमेन से बाहर नहीं कर सकता? मैं विजुअल स्टूडियो से कर सकता हूं, इसलिए यह समझ में नहीं आता है। हो सकता है कि अगर मैं डोमेन पर नहीं हूं तो भी मैं डोमेन उपयोगकर्ता का प्रतिरूपण कर सकता हूं? – sonicblis