2015-12-30 3 views
4

Простите меня, если мой вопрос глуп или что-то, насколько я новичок в программировании. Этот стек над потоком статьи Visual Studio 2013 and ASP.NET Web Configuration Tool спас меня за запуск Visual Studio 2013 WSA Tool, но я столкнулся с новой проблемой, и это соединение с базой данных SQL Server.Как решить Не удается подключиться к базе данных SQL Server?

Проблема заключается в том, когда я бегу IIS Express через CMD, а затем поместить адрес в браузере, я попадаю в WSA инструмент, но когда я нажимаю вкладку безопасности или ссылку, а затем я получаю эту ошибку:

There is a problem with your selected data store. This can be caused by an invalid server name or credentials, or by insufficient permission. It can also be caused by the role manager feature not being enabled. Click the button below to be redirected to a page where you can choose a new data store.

Ниже сообщение может помочь в диагностике проблемы:

Unable to connect to SQL Server database

Моя строка соединения выглядит следующим образом:

<connectionStrings> 
    <add name="DefaultConnection" 
     connectionString="Data Source=.; Initial Catalog=aspnetdb; User Id=sa; Password=***********; Integrated Security=true" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

И все мое приложение web.config ниже:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=.; Initial Catalog=aspnetdb; User Id=sa; Password=***********; Integrated Security=true" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="webpages:Version" value="2.0.0.0" /> 
    <add key="webpages:Enabled" value="false" /> 
    <add key="PreserveLoginUrl" value="true" /> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" timeout="2880" /> 
    </authentication> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages" /> 
     </namespaces> 
    </pages> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
     <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers></system.webServer> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" /> 
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" /> 
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 
</configuration> 

Я не вижу <rolemanager enabled=true> в моем MVC Application, даже если я попытался веб-приложения, которые имели этот <rolemanager enabled="true"> но не работал даже.

PS: Стоит упомянуть, что когда я запускаю приложение, он сам работает более чем нормально, я могу создавать пользователей, обновлять пароли пользователей и т. Д. ... и результаты снова отражаются на таблицах базы данных MS SQL Server но не знаю, какая здесь магия.

Что вы посоветуете ?!

С уважением Dostdar

+0

посмотрите на следующую ссылку, чтобы узнать, как форматировать строку подключения в вашем .config файле [C# Connection Strings] (http://www.connectionstrings.com/sql -server /) – MethodMan

+0

Является ли ваш SqlServer в [режиме смешанной проверки подлинности] (http://stackoverflow.com/questions/1393654/how-can-i-change-from-sql-server-windows-mode-to-mixed-mode -sql-server-2008)? – Marshal

+0

Да, он находится в режиме проверки подлинности в среде Windows и SQL Server –

ответ

1

Если вы собираетесь подключиться к SQL Server в качестве са, то попробуйте удалить «Integrated Security = истина» из строки подключения.

Если для этого параметра установлено значение true, для аутентификации используются текущие учетные данные учетной записи Windows. У вашего пользователя Windows могут быть не соответствующие права на БД.

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.110).aspx

+0

Я изменил это, но это не сработало. Я установил текущий идентификатор пользователя Windows во время установки MS SQL Server. –

0

я думаю, что вы должны пойти к SQL серверу и в безопасности объекта поиска исследователя -> са -> Состояние -> Войти -> включен

0

Глядя на ваши строки соединения ниже, вы указывая на локальный полномасштабный экземпляр установки SQL Server, но у вас действительно есть база данных с именем aspnetdb? так как вы упомянули, что в вашей строке подключения Initial Catalog=aspnetdb;.

aspnetdb Вы пытаетесь получить доступ к базе данных ASP.NET Identity, и я сильно сомневаюсь, что это присоединенная база данных в вашем решении/проекте под папкой App_Data. В этом случае ваша строка подключения неверна (вы должны указывать на localDB), и поэтому вы столкнулись с этой ошибкой.

<connectionStrings> 
    <add name="DefaultConnection" 
     connectionString="Data Source=.; Initial Catalog=aspnetdb; ... 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+0

да, у меня есть sql db с именем aspnetdb, и у меня нет какой-либо прикрепленной базы данных в моей 'App_Data' –

0

Попробуйте это.

Изменить web.config Строка соединения

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=Your PC Name; Initial Catalog=aspnetdb; User Id=sa; Password=***********; " providerName="System.Data.SqlClient" /> 
</connectionStrings> 

например.Источник данных = XYZ\SQLEXPRESS и попытаться удалить Integrated Security=true

Смежные вопросы