2012-02-07 24 views
6

फेंकता है मैं डिफ़ॉल्ट साइटमैप प्रदाता with secutiry trimming का उपयोग कर रहा हूं। लेकिन, कुछ कैसे, मैं मिलता है:साइटमैप सुरक्षा ट्रिमिंग एसक्यूएल त्रुटि

A network-related or instance-specific error occurred while establishing a connection to SQL Server.

मैं साइटमैप प्रदाता सोच रहा हूँ गलत जगह पर भूमिकाओं के लिए लग रही है। मेरे विन्यास इस तरह है:

<connectionStrings> 
    <add name="DB" ... /> 
</connectionStrings> 


    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15"> 
     <providers> 
     <clear/> 
     <add name="SqlProvider" .../> 
     </providers> 
    </membership> 
    <roleManager enabled="true"> 
     <providers> 
     <add connectionStringName="DB" type="System.Web.Security.SqlRoleProvider" ... /> 
     </providers> 
    </roleManager> 

साइटमैप टैग इस तरह परिभाषित किया गया है:

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true" > 
     <providers> 
      <clear/> 
      <add name="XmlSiteMapProvider" 
      description="Default SiteMap provider." 
      type="System.Web.XmlSiteMapProvider " 
      siteMapFile="Web.sitemap" 
      securityTrimmingEnabled="true" /> 
     </providers> 
    </siteMap> 

मैं एसक्यूएल त्रुटि क्यों मिल रही? ट्रिमिंग भूमिका कैसे प्राप्त करता है?

संपादित करें: the ysod

+0

हैलो, आप सटीक अपवाद मिल रहा है + किसी भी स्टैक ट्रेस बाहर डाल कृपया कर सकते हैं। –

+0

और आप पूरी तरह से सुनिश्चित हैं कि डीबी कनेक्शन वास्तव में सही है? – Vedran

+0

क्या आपका एएसपी है: साइटमैपडेटासोर्स जैसे

उत्तर

2

कोर त्रुटि अपने स्क्रीनशॉट से

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server

दुर्भाग्य है, इस काट दिया गया। आमतौर पर संदेश "रिमोट कनेक्शन को अनुमति देने के लिए कॉन्फ़िगर किया गया है।", और इसके बाद एक विशिष्ट कारण (उदाहरण के लिए, यह राज्य (कई अन्य कारणों से) हो सकता है "प्रदाता: एसक्यूएल नेटवर्क इंटरफेस , त्रुटि: 26 - सर्वर/इंस्टेंस निर्दिष्ट करने में त्रुटि निर्दिष्ट ")

हालांकि, आपके पास अब तक के संदेश के साथ, यह क्लाइंट मशीन और SQL सर्वर बॉक्स के बीच कनेक्टिविटी समस्या की तरह दिखता है। इसलिए मैं एसक्यूएल सर्वर बॉक्स और पहले नेटवर्क कनेक्टिविटी के खिलाफ कारण-परिश्रम कर रही है पर देखने चाहते हैं:

  • एसक्यूएल सर्वर सर्वर नाम
  • हल कर सकते हैं सर्वर पिंग
  • कि एसक्यूएल सर्वर के साथ पहुँचा जा सकता है यही कारण है कि एसक्यूएल ब्राउज़र सेवा एसक्यूएल सर्वर बॉक्स
  • Windows फ़ायरवॉल रास्ते में आ नहीं है यही कारण है कि
  • कि एसक्यूएल सर्वर ही वास्तव में च में चल रहा है पर चल रहा है यही कारण है कि दूरस्थ कनेक्शन
  • स्वीकार करने के लिए कॉन्फ़िगर किया गया है irst place

यदि वे पास करते हैं तो आपको लॉग-ऑन करने से पहले सत्यापित करने की आवश्यकता होती है। मैं सामान्य कनेक्टिविटी का परीक्षण करने के लिए सामान्य रूप से SQL प्रबंधन उपकरण, विशेष रूप से कमांड लाइन उपकरण sqlcmd का उपयोग करता हूं (उदाहरण के लिए: किसी विशिष्ट डेटाबेस से कनेक्ट करने के लिए डिफ़ॉल्ट डेटाबेस या sqlcmd -E -S mysqlserver\instance -d database से कनेक्ट करने के लिए sqlcmd -E -S mysqlserver\instance)। जाहिर है आपको इन्हें उपयोगकर्ता के रूप में चलाने की आवश्यकता होगी कि आपका वेब एप्लिकेशन चल रहा है, अन्यथा वे आपके रूप में प्रमाणीकृत करने का प्रयास करेंगे (या तो runas का उपयोग करें या विभिन्न क्रेडेंशियल के तहत कमांड प्रॉम्प्ट प्रारंभ करें [फिर स्टार्ट मेनू में कमांड प्रॉम्प्ट ढूंढें , शिफ्ट-राइट-क्लिक करें -> "एक अलग उपयोगकर्ता के रूप में चलाएं]

हालांकि आखिरकार सहायता क्या होगी यदि आप पूर्ण त्रुटि संदेश टेक्स्ट (संक्षिप्त संस्करण के बजाए) प्राप्त कर सकें, तो इससे संकीर्ण हो सकता है आपके पास विशिष्ट समस्या है।

0

इस काम के साइटमैप का प्रयास करें:

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
    <providers> 
    <add name="XmlSiteMapProvider" description="SiteMap provider which reads in .sitemap XML files." type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="true" /> 
    </providers> 
</siteMap> 
+0

अभी भी फेंकता है एक ही त्रुटि :( – robasta

0

मैं केवल एक डिफ़ॉल्ट भूमिका प्रदाता और सुरक्षा ट्रिमिंग के साथ एक ब्रांड नई परियोजना बनाने की कोशिश करता हूं और देखता हूं कि आप यह काम कर सकते हैं या नहीं।

0

यदि SqlRoleProvider सुरक्षा ट्रिमिंग सक्षम किए बिना काम करता है, तो मेरा पहला अनुमान यह होगा कि आपके डेटाबेस या कनेक्शन स्ट्रिंग के बारे में कुछ ऐसा है जो एकाधिक एक साथ कनेक्शन को रोक रहा है। मूल्यांकन करने के लिए यह थोड़ा आसान होगा यदि आप अपने DB कनेक्शन स्ट्रिंग का विवरण प्रदान कर सकते हैं ...

0

सामान्य रूप से, कॉन्फ़िगरेशन सही दिखता है। अपवाद के संदेश के अनुसार, डेटाबेस अनुपलब्ध है। क्या आप जांच लेंगे कि डेटाबेस कनेक्ट किया जा सकता है या नहीं?

using (SqlConnection connection = new SqlConnection()) { 
    connection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DB"].ConnectionString; 
    try { 
     connection.Open(); 
    } 
    catch() { 
     ... 
    } 
} 

“Steps to troubleshoot SQL connectivity issues”