2013-04-08 11 views
5

का उपयोग नहीं करना चाहता हूं मैंने अभी एएसपी.NET एमवीसी 4 में एक नया एप्लीकेशन तैनात किया है। मैं एक SQL Server 2008 R2 का उपयोग करता हूं (एसक्यूएल एक्सप्रेस नहीं)।एमवीसी 4 में एसक्यूएल सर्वर एक्सप्रेस डेटाबेस फ़ाइल स्वत: निर्माण त्रुटि - लेकिन मैं SQL सर्वर एक्सप्रेस

यह पहले 10 मिनट के लिए अच्छा काम करता था, फिर मैंने कोड में थोड़ा बदलाव किया और इसे फिर से तैनात किया।

अब, जब भी मैं एक पेज SimpleMembership का उपयोग करता है तक पहुँचने का प्रयास, मैं इस त्रुटि मिलती है:

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 is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

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.

SQLExpress database file auto-creation error:
The connection string specifies a local Sql Server Express instance using a database location within the application's App_Data directory. The provider attempted to automatically create the application services database because the provider determined that the database does not exist. The following configuration requirements are necessary to successfully check for existence of the application services database and automatically create the application services database:

लेकिन, मुझे नहीं उपयोग SQL सर्वर एक्सप्रेस है।

<add name="ApplicationServices" 
    connectionString="Server=myServer;Database=myDB;User Id=myUserID;Password=myPWD;" 
    providerName="System.Data.SqlClient" /> 

<add name="ApplicationServices" 
    connectionString="Server=myServer;Database=myDB;User Id=myUserID;Password=myPWD;" 
    providerName="System.Data.SqlClient" /> 

यह एक एसक्यूएल सर्वर एक्सप्रेस डेटाबेस बनाने के लिए कोशिश कर रहा है क्यों रखता है: मेरे web.config में मैं सभी कनेक्शन तार इस प्रकार निर्धारित किया है?

+0

कनेक्शन स्ट्रिंग नाम आपके डेटाबेस संदर्भ के समान होना चाहिए। Http://stackoverflow.com/questions/5346926/code-first-specify-database-name – AaronLS

+1

क्षमा करें, मैंने आपकी समस्या को गलत समझा होगा। मैंने माना कि आप पहले ईएफ कोड का उपयोग कर रहे थे। – AaronLS

+1

क्या आपने इसे हल किया? मुझे बिल्कुल एक ही त्रुटि का सामना करना पड़ रहा है .. – Chatumbabub

उत्तर

4

क्या आपको अभी भी यह समस्या है? साथ ही, आपके पास एप्लिकेशन सर्विसेज दो बार क्यों सूचीबद्ध है?

मैं थोड़ी देर पहले एक ही चीज़ में भाग गया। सदस्यता और भूमिकाओं के लिए मैं web.config में कॉन्फ़िगरेशन खो रहा था।

<membership defaultProvider="AspNetSqlMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="AspNetSqlMembershipProvider" 
     type="System.Web.Security.SqlMembershipProvider" 
     connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     applicationName="Test" /> 
    </providers> 
</membership> 
<roleManager enabled="true" defaultProvider="SqlRoleManager"> 
    <providers> 
    <add name="SqlRoleManager" 
     type="System.Web.Security.SqlRoleProvider" 
     connectionStringName="ApplicationServices" 
     applicationName="Test" /> 
    </providers> 
</roleManager> 
4

जब मुझे यह त्रुटि आई, तो यह सरल हो गया। अंततः मुझे पता चला कि मेरे _Layout.cshtml में मैं User.IsInRole("role") का संदर्भ दे रहा था लेकिन Request.isAuthenticated के बाद। मेरा कोड कुछ @if (Request.isAuthenticated && User.IsInRole("role")) जैसा दिखता था। इसलिए मूल रूप से यदि मैं होम पेज में साइन इन नहीं किया गया था तो यह IsInRole() कॉल (जिसकी सरल सदस्यता शुरू करने की आवश्यकता होती है) के विपरीत नहीं होगा, अन्यथा मुझे आपके द्वारा यहां दी गई त्रुटि मिल जाएगी। इसलिए मूल रूप से मुझे यह सुनिश्चित करने की आवश्यकता है प्रत्येक और हर नियंत्रक एक राय यह है कि _Layout फ़ाइल प्रदान करता है और अप्रमाणित उपयोगकर्ताओं हो सकता का उपयोग करता है, एक [InitializeSimpleMembership] की जरूरत है। या फिर विभिन्न तरीकों में से एक सरल सदस्यता प्रारंभ करने के लिए।

तो

namespace ProjectName.Controllers 
{ 
    [InitializeSimpleMembership] 
    public class HomeController : Controller { 
... 

की तरह कुछ साथ ही, मैं एप्लिकेशन को शुरू करने के लिए अक्सर Ctrl + F5 करता हूं और उसके बाद "समाधान पुनर्निर्माण" का उपयोग करता हूं। जब मैंने एक पृष्ठ रीफ्रेश किया जो रूट नहीं था होम पेज, जब तक मैं रूट होम पेज नहीं कहूंगा तब तक मुझे त्रुटि मिल जाएगी। उस बिंदु पर, सबकुछ फिर से काम करना शुरू कर देगा।

उम्मीद है कि इससे आपको या किसी की मदद मिलेगी। मैंने कम से कम एक घंटे या दो के लिए अपने सिर टक्कर लगी।

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