संग्रहीत कार्यविधि 'dbo.aspnet_CheckSchemaVersion' नहीं मिली


87

मैं अपनी साइट को होस्ट करने के लिए WinHost.com का उपयोग कर रहा हूं। SQL डेटाबेस / सदस्यता प्रणाली मेरे स्थानीय कंप्यूटर पर पूरी तरह से काम करती है, लेकिन जब सर्वर पर अपलोड किया जाता है तो यह काम नहीं करता है। मैंने सभी चरणों का सही ढंग से पालन किया है। और मैंने अपनी सेवा के लिए समर्थन से संपर्क किया है लेकिन यह 2weeks और कोई जवाब नहीं है।

जब मैं अपनी साइट पर अपने सदस्यता पृष्ठ पर एक नया उपयोगकर्ता लॉगिन या पंजीकृत करने का प्रयास करता हूं तो मुझे यह त्रुटि मिलती रहती है।

Server Error in '/' Application.
--------------------------------------------------------------------------------

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[SqlException (0x80131904): Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1953274
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4849707
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +204
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +175
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137
   System.Web.Util.SecUtility.CheckSchemaVersion(ProviderBase provider, SqlConnection connection, String[] features, String version, Int32& schemaVersionCheck) +378
   System.Web.Security.SqlMembershipProvider.CheckSchemaVersion(SqlConnection connection) +89
   System.Web.Security.SqlMembershipProvider.GetPasswordWithFormat(String username, Boolean updateLastLoginActivityDate, Int32& status, String& password, Int32& passwordFormat, String& passwordSalt, Int32& failedPasswordAttemptCount, Int32& failedPasswordAnswerAttemptCount, Boolean& isApproved, DateTime& lastLoginDate, DateTime& lastActivityDate) +815
   System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved, String& salt, Int32& passwordFormat) +105
   System.Web.Security.SqlMembershipProvider.CheckPassword(String username, String password, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved) +42
   System.Web.Security.SqlMembershipProvider.ValidateUser(String username, String password) +78
   System.Web.UI.WebControls.Login.AuthenticateUsingMembershipProvider(AuthenticateEventArgs e) +60
   System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +119
   System.Web.UI.WebControls.Login.AttemptLogin() +115
   System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +101
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +118
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +166
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.4200; ASP.NET Version:2.0.50727.4016 

क्या कोई मुझे बता सकता है कि यह त्रुटि क्यों हुई (जाहिर है कि यह कुछ नहीं पा सकता है ...), और मैं इसे कैसे ठीक कर सकता हूं?

आप सभी को धन्यवाद

बेल


क्या यह संभव है कि आपको स्टोर किए गए नाम को आगे बढ़ाने की आवश्यकता है या मालिक dbo नहीं है
David

SQL सर्वर के किस संस्करण का आप उपयोग कर रहे हैं?
नईम सरफराज

जवाबों:


164

क्या आपने aspnet_regsql.exeWinHost.com के sql सर्वर के खिलाफ चलाया?

aspnet_regsql.exe -S DBServerName -U DBLogin -P DBPassword -A all -d DBName

यदि आप नहीं जानते हैं कि कमांड के ऊपर कहां चलाना है तो आप बस 'aspnet_regsql.exe' एग्जीक्यूटेबल फाइल चला सकते हैं।

इस फ़ाइल का पता लगाने के लिए, Windows Key + r दबाकर अपने RUN कमांड बॉक्स को खोलें और उसमें कमांड %windir%\Microsoft.NET\Framework\v4.0.30319डालें और Hit दर्ज करें और फिर 'aspnet_regsql.exe' फ़ाइल ढूंढें। यह एक विज़ार्ड खोलेगा जिसे आप इस त्रुटि को हल करने के लिए अनुसरण कर सकते हैं।

यह त्रुटि ज्यादातर तब होती है जब आपने अपने asp.net mvc प्रोजेक्ट में Roles को सक्षम नहीं किया था, Aspnet पहचान तालिका से पहले स्वचालित रूप से निर्मित होने से पहले।

आपको यह सुनिश्चित करने की आवश्यकता होगी कि आप इसे चलाते हैं ताकि टेबल और ऑब्जेक्ट WinHost.com के SQL सर्वर पर बनाए जाएं।


17
यदि आपके पास एकीकृत सुरक्षा है, तो "-यू" (उपयोगकर्ता नाम) और "-पी" (पासवर्ड) झंडे के बजाय "-ई" ध्वज का उपयोग करें।
डांस 2 डिडी

धन्यवाद!!! बस जोड़ने के लिए, आप इसे एक कमांड लाइन के साथ चला सकते हैं जो GUI प्राप्त करने के लिए नहीं करता है, न कि haxxor के रूप में, बल्कि काम करता है :)
JMK

@gabriel aspnet_regsql.exe कैसे चलाएं?
जाम विले

2
@IvorySantos: यदि आप निष्पादन योग्य के लिए सामान्य मार्ग के बारे में पूछ रहे थे, तो यह उदाहरण है "% windir% \ Microsoft.NET \ Framework \ v4.0.30319"। Msdn.microsoft.com/en-us/library/ms229862.ASPX
kristinalim

आपकी मदद के लिए धन्यवाद @ गैब्रिएल, यह बहुत सराहना की गई है।
jay_t55 8

28

ओपन मेनू और टाइप से विजुअल स्टूडियो टूल्स फोल्डर से विजुअल स्टूडियो कमांड प्रॉम्प्ट खोलें aspnet_regsql

और asp.net सदस्यता और रोल प्रदाताओं के लिए डेटाबेस रजिस्टर करने के लिए विज़ार्ड का पालन करें।


2
हाय दोस्त, aspnet_regsql मैं अपने मुद्दे को ठीक करने में सक्षम था और अब सवाल यह है कि यह क्या है --aspnet_regsql - क्या?
लुसियन बम्ब

10

मैंने यह पहले देखा है। आपके द्वारा उपयोग किए जा रहे डेटाबेस में सदस्यता, भूमिका प्रबंधन और प्रोफ़ाइल सुविधाओं के लिए आवश्यक डेटाबेस तत्व नहीं हैं। इसलिए आपको कुछ विकल्प मिले हैं:

  1. SQL प्रबंधन स्टूडियो या इसी तरह के अनुप्रयोग का उपयोग करके अपने स्थानीय SQL सर्वर से तालिकाओं, संग्रहीत प्रक्रियाओं और विचारों की प्रतिलिपि बनाएँ
  2. इस पोस्ट में दिए निर्देशों के अनुसार स्क्रिप्ट को स्थापित करने के लिए aspnet_regsql.exe टूल का उपयोग करें (मुझे विश्वास नहीं है कि आप उपकरण को रिमोट डेटाबेस के विरुद्ध उपयोग कर सकते हैं यदि यह बंद है। तो आपको स्क्रिप्ट निर्यात करना होगा और चलाना होगा। उन्हें मैन्युअल रूप से)

5

मुझे एक ही समस्या है- मैं SQL Object managerVisual Studio से कनेक्शनस्ट्रीमिंग कॉपी / पेस्ट करता हूं और टाइप करना भूल जाता हूं Initial Catalog=YourDatabaseName


मैंने इसके Initial Catalog=masterबजायInitial Catalog=YourDatabaseName
डेविड चिंग

धन्यवाद! उसने मेरे लिए इसे हल कर दिया।
Dan Csharpster

3

स्कीमा की जांच करें कि संग्रहीत कार्यविधि आपके मेजबान पर है - ऐसा हो सकता है कि यह "dbo" स्कीमा में नहीं है।

उदाहरण के लिए अगर यह SomeOtherSchema के भीतर है, तो आपके कॉल को "SomeOtherSchema.aspnet_CheckSchemaVersion" होना चाहिए


1
शुक्रिया अदा क्या आप मुझे बता सकते हैं कि मैं कॉल को किसी और चीज़ में कैसे बदलूंगा? जैसे, जहाँ कोड के बारे में यह होगा ... web.config?
jay_t55

3

जब मैं <roleManager>ASP.NET आइडेंटिटी 2 को सक्षम कर रहा था तो विश्वास करने में सक्षम होने पर मेरे पास ठीक वही त्रुटि थी । वे समान नहीं हैं! <roleManager>जो ASP.NET पहचान 2 (- यह बस नहीं है जो की जरूरत नहीं है जिस तरह से "सक्षम") के लिए एक अलग तालिका संरचना का उपयोग करता पहचान प्रबंधन के एक पुराने संस्करण सक्षम होना चाहिए।

यदि आप जानबूझकर पुराने रोल-मैनेजर का उपयोग कर रहे हैं और अभी भी त्रुटि हो रही है, तो आप localdbअपने डेटाबेस के बजाय डिफ़ॉल्ट को <roleManager>देख सकते हैं, जिस स्थिति में आप चाहें तो किसी भी कनेक्शन स्ट्रिंग पर इंगित करने के लिए संशोधित कर सकते हैं:

  <roleManager
      enabled="true"
      cacheRolesInCookie="true"
      defaultProvider="OurSqlRoleProvider"
     >
      <providers>
          <add
             connectionStringName="DefaultConnection"
             applicationName="/"
             name="OurSqlRoleProvider"
             type="System.Web.Security.SqlRoleProvider" />
      </providers>

  </roleManager>

यदि आप ASP.NET आइडेंटिटी 2 का उपयोग करने के बाद हैं, तो इस पर एक लेख यहां दिया गया है:
http://johnatten.com/2014/04/20/asp-net-mvc-and-identity-2-0-understanding-the- मूल बातें /


1

संक्षेप में, आपको अपने होस्टिंग से असाइन किए गए sql उपयोगकर्ता नाम का उपयोग करते हुए aspnet प्रदाता dll को recompile करना चाहिए।

  • Http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi डाउनलोड करें
  • स्रोत कोड से सभी संदर्भों को अपने होस्टिंग डेटाबेस उपयोगकर्ता नाम के साथ dbo से बदलें
  • संकलित करें (आपको विजुअल स्टूडियो की आवश्यकता है) और बिन फ़ोल्डर में प्रदाता टूलकिटसम्पलप्रोवाइडर.डल को रखें
  • अपने web.config में "Microsoft.Samples।, प्रदाताToolkitSampleVroviders" के साथ हर पंक्ति के "प्रकार" विशेषता को बदलें।
  • आप अपने स्थानीय डेटाबेस सर्वर में अपने होस्टिंग डेटाबेस उपयोगकर्ता नाम के साथ सभी स्थानीय संदर्भों को बदलें
  • Sql ऑब्जेक्ट निर्माण स्क्रिप्ट निर्यात करें और उन्हें दूरस्थ डेटाबेस पर चलाएँ
  • दूरस्थ डेटाबेस में अपने स्थानीय sql तालिका aspnet_SchemaVersions से रिकॉर्ड की प्रतिलिपि बनाएँ

एक अन्य विकल्प, कोशिश करने के लिए सरल है, अपने होस्टिंग डेटाबेस उपयोगकर्ता नाम के साथ अपने स्थानीय sql सर्वर डेटाबेस में dbo संदर्भों को बदलना है, फिर अपनी mdf फ़ाइल अपलोड करें और संलग्न करें।

आशा करता हूँ की ये काम करेगा

थॉमस


है ना? आपकी दुनिया में कौन सा रंग है? lolzalot। यार को बस अपने डेटाबेस का प्रावधान करने या अपने कनेक्शन स्ट्रिंग को ठीक करने की आवश्यकता है। इससे बेहतर कोई जवाब नहीं होता।
स्काई सैंडर्स

1
जब उसने लिखा था "मैंने सभी चरणों का सही ढंग से पालन किया है" तो मुझे लगा कि उसने पहले से ही aspnet_regsql.exe की कोशिश की और कनेक्शन स्ट्रिंग को डबलचेक किया। एक होस्टिंग प्रदाता जो मुझे पता है कि aspnet_regsql.exe की अनुमति नहीं है, तो मेरा उस मामले के लिए एक काम कर समाधान है।
थॉमस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.