2012-01-30 21 views
9

हम एक बहु-किरायेदार सिल्वरलाइट एप्लिकेशन लिख रहे हैं। उपयोगकर्ता विंडोज प्रपत्र प्रमाणीकरण का उपयोग कर लॉग इन करता है और हम उस उपयोगकर्ता के लिए एक तालिका से कनेक्शन स्ट्रिंग खींचते हैं। स्ट्रिंग फॉर्म का था:यह डेटाबेस कनेक्शन विफल क्यों होता है जब "अनुप्रयोग नाम = अनुप्रयोग" कनेक्शन स्ट्रिंग में होता है?

Data Source=1.2.3.4; Initial Catalog=database; Persist Security Info=True; User ID=######; Password=########## 

यह ठीक काम कर रहा था। हम तो फैसला किया है कि आवेदन नाम की स्थापना, कारणों outlined here के लिए एक अच्छा विचार होगा:

Data Source=1.2.3.4; Initial Catalog=database; Application Name=application; Persist Security Info=True; User ID=######; Password=########## 

हालांकि, अब कनेक्शन नहीं किया जा रहा है तो हम हो रही है त्रुटियों। यह केवल तैनात साइट पर असफल रहा है। विजुअल स्टूडियो के माध्यम से चल रहा है जाहिर तौर पर अप्रभावित है। कनेक्शन में कोई बदलाव नहीं आया है जो कनेक्शन बनाता है। मैं विश्वास करने के लिए तैयार हूं कि परिवर्तन होना चाहिए, लेकिन मैं यह नहीं कर पा रहा हूं कि उन्हें क्या होना चाहिए।

कनेक्शन इस तरह बनाया जा रहा है:

public class OurDataContext : DataContext 
{ 
    public OurDataContext() 
     : base(SessionCache.OurConnectionString) 
    { 
     .... 
    } 
} 

SessionCache.OurConnectionString स्ट्रिंग है डेटाबेस से पढ़ने के रूप में।

अद्यतन

कनेक्शन स्ट्रिंग करने के लिए परिवर्तन एक रेड हेरिंग हो सकता है। हमें केवल एक वेब सर्वर पर यह विफलता मिलती है (जिसकी मुझे प्रत्यक्ष पहुंच नहीं है)। किसी अन्य वेब सर्वर द्वारा संदर्भित डेटाबेस में संपत्ति जोड़ना (कि मैं तक पहुंच प्राप्त करता हूं) समस्या को पुन: उत्पन्न नहीं करता है। यह मुझे निष्कर्ष पर ले जा रहा है कि त्रुटि कहीं और है। हालांकि, मैं अभी भी इसे हल करने के लिए कोई नजदीक नहीं हूं।

वास्तविक त्रुटि एक अपवाद है:

An exception of type 'System.ServiceModel.DomainServices.Client.DomainOperationException' occurred and was caught. 
------------------------------------------------------------------------------------------------------------------ 
01/31/2012 14:18:53 
Type : System.ServiceModel.DomainServices.Client.DomainOperationException, System.ServiceModel.DomainServices.Client, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 
Message : Load operation failed for query 'GetUserSecurityConfig'. The remote server returned an error: NotFound. 
Status : ServerError 
ErrorCode : 0 
Data : System.Collections.ListDictionaryInternal 
Stack Trace : The stack trace is unavailable. 

सभी शोध मैं आज किया है यह कुछ काफी बुनियादी चीजें हैं जो नहीं बदल दिया है चाहिए रिटर्न पर:

  • प्रणाली। ComponentModel.DataAnnotations, System.ServiceModel.DomainServices.EntityFramework, System.ServiceModel.DomainServices.Hosting और System.ServiceModel.DomainServices.Server \ bin निर्देशिका में कॉपी नहीं किया जा रहा है। मैंने जांच की है और वे हैं।
  • डेटाबेस सर्वर से कनेक्ट त्रुटियां। मैं नहीं सोचता यह मामला प्रमाणीकरण काम करता है। यह सर्वर पर एक अलग डेटाबेस है, लेकिन प्रमाण पत्र एक ही हैं।
+0

मैं कोई SQL सर्वर विशेषज्ञ नहीं हूं लेकिन मैं "लगातार सुरक्षा जानकारी" भाग को हटाने का प्रयास करता हूं और देखता हूं कि यह मदद करता है ... कोई अन्य बिंदु: क्या "एप्लिकेशन" में कोई रिक्त स्थान या समान होता है? – Yahia

+0

@ याहिया - "एप्लिकेशन" में कोई स्थान नहीं है। उपयोगकर्ता नाम और पासवर्ड वापस पाने के लिए "सुरक्षा सुरक्षा जानकारी" को सत्य होना आवश्यक है [स्रोत] (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx) – ChrisF

+0

आप तैनात डीबी में "आवेदन" को कॉन्फ़िगर किया था? –

उत्तर

1

समस्या सर्वर पर स्थापित आरआईए सेवाओं के संस्करण के कारण हुई।

हमने हाल ही में परियोजनाओं को एनयूजीएटी पैकेज मैनेजर के माध्यम से आरआईए सेवाओं को शामिल करने के लिए बदल दिया था और इस सर्वर के पास पहले ही वीएस -2010 स्थापित आरआईए सेवाएं थीं। जब हमने इसे हल किया तो सब कुछ वापस जीवन में फैल गया।

यह स्पष्ट नहीं है कि इस समस्या के लिए खुद को प्रकट करने में इतना समय क्यों लगा।

0

हमें केवल एक वेब सर्वर पर यह विफलता मिलती है (जिसकी मुझे प्रत्यक्ष पहुंच नहीं है)। किसी अन्य वेब सर्वर (जिसे मेरे पास पहुंच है) द्वारा संदर्भित डेटाबेस में संपत्ति जोड़ना समस्या को पुन: उत्पन्न नहीं करता है।

वेबसर्वर कॉन्फ़िगरेशन की जांच करें और डेटाबेस सही तरीके से स्थापित है।

मुझे वेबसर्वर कॉन्फ़िगर/डीबी इंस्टॉलियन की तरह दिखता है।

+0

यह निष्कर्ष है कि हम भी आ रहे हैं। हालांकि, अभी तक कुछ भी नहीं हुआ है। – ChrisF

+0

@ChrisF चेक (और वर्किंग वेबसर्वर से तुलना करें) जो डेटाबेस और स्कीमा उपयोगकर्ता से कनेक्ट हो रहा है और उपयोगकर्ता SQL सर्वर में मैपिंग कर रहा है। ऐसा प्रतीत होता है कि कनेक्शन को ऐसे डेटाबेस में स्थापित किया जा रहा है जिसमें GetUserSecurityConfig नहीं है। यह कहां से कनेक्ट हो रहा है इसकी पुष्टि करने के लिए 'प्रारंभिक कैटलॉग = schema.database' आज़माएं। – PhilW

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