2014-02-06 7 views
1

Я разработал веб-сайт с использованием встроенного шаблона Visual Studio 2012 для сайта asp.net.SQL Connection issue

Он отлично работал с сервером разработки ASP.NET.

Когда я загрузил веб-сайт в IIS. Я столкнулся с ошибкой, упомянутой ниже, когда я пытался войти в систему.

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: 50 - Local Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details.

СТЭК TRACE

[SqlException (0x80131904): 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: 50 - Local Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details. 
)] 
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +6675286 
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +688 
    System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +6701832 
    System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +219 
    System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +6703968 
    System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +6704427 
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions) +610 
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +1049 
    System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +74 
    System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions userOptions) +6706995 
    System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions) +78 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +2192 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +116 
    System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1012 
    System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +6711619 
    System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +152 
    System.Data.SqlClient.SqlConnection.Open() +229 
    System.Data.SqlClient.SqlProviderServices.UsingConnection(SqlConnection sqlConnection, Action`1 act) +134 
    System.Data.SqlClient.SqlProviderServices.UsingMasterConnection(SqlConnection sqlConnection, Action`1 act) +3790907 
    System.Data.SqlClient.SqlProviderServices.GetDbProviderManifestToken(DbConnection connection) +10941050 
    System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +91 

[ProviderIncompatibleException: The provider did not return a ProviderManifestToken string.] 
    System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +10941121 
    System.Web.Providers.ModelHelper.CreateMetadataWorkspace(String providerName, DbConnection connection, String csdl, String ssdl, String msl) +168 
    System.Web.Providers.ModelHelper.CreateEntityConnection(ConnectionStringSettings setting, String csdl, String ssdl, String msl) +298 
    System.Web.Providers.ModelHelper.CreateMembershipEntities(ConnectionStringSettings setting) +51 
    System.Web.Providers.DefaultRoleProvider.IsUserInRole(String username, String roleName) +180 
    System.Web.Security.Roles.IsUserInRole(String username, String roleName) +794 
    LoginPage.Login1_Authenticate(Object sender, AuthenticateEventArgs e) in c:\inetpub\wwwroot\TimeCard\LoginPage.aspx.cs:19 
    System.Web.UI.WebControls.Login.AttemptLogin() +160 
    System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +93 
    System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +84 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3804 

Мой файл WebConfig является

<?xml version="1.0"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <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=(LocalDb)\v11.0;Initial Catalog=aspnet-TimeCard-20131218110938;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-TimeCard-20131218110938.mdf" 
     providerName="System.Data.SqlClient" /> 
    <add name="TimeCardConnectionString" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=TimeCard;Integrated Security=SSPI" 
     providerName="System.Data.SqlClient" /> 
    <add name="MCASConnectionString" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=MCAS;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    <add name="TimeCardConnectionString2" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=TimeCard;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <system.web> 
    <authorization> 
     <allow roles="Admin" /> 
    </authorization> 
    <compilation debug="true" > 
     <assemblies> 
     <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     </assemblies> 
    </compilation > 

    <pages> 
     <namespaces> 
     <add namespace="System.Web.Optimization"/> 
     </namespaces> 
     <controls> 
     <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt"/> 
     </controls> 
    </pages> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="~/"/> 
    </authentication> 
    <profile defaultProvider="DefaultProfileProvider"> 
     <providers> 
     <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/> 
     </providers> 
    </profile> 
    <membership defaultProvider="DefaultMembershipProvider"> 
     <providers> 
     <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/> 
     </providers> 
    </membership> 
    <roleManager enabled="true" defaultProvider="DefaultRoleProvider"> 
     <providers> 
     <add connectionStringName="DefaultConnection" applicationName="/" 
      name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </providers> 
    </roleManager> 
    <!-- 
      If you are deploying to a cloud environment that has multiple web server instances, 
      you should change session state mode from "InProc" to "Custom". In addition, 
      change the connection string named "DefaultConnection" to connect to an instance 
      of SQL Server (including SQL Azure and SQL Compact) instead of to SQL Server Express. 
     --> 
    <sessionState mode="InProc" customProvider="DefaultSessionProvider"> 
     <providers> 
     <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"/> 
     </providers> 
    </sessionState> 
    </system.web> 
    <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> 
    </assemblyBinding> 
    </runtime> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/> 
    </entityFramework> 
</configuration> 

Какой должна быть проблема?

+0

http://stackoverflow.com/questions/16256533/a-network-related-or-instance-specific- ошибка-произошла-в-установлении-a-conne –

+0

Проблема очень распространена, проверьте ссылку в моем ответе, и вам нужно выполнить несколько шагов, и если вы получите ошибку, даже после этого, пожалуйста, дайте мне знать .. !! –

ответ

1

Вы используете localhost\SQLEXPRESS для своей базы данных в строках подключения - если это сервер, его необходимо заменить именем экземпляра базы данных в реальном времени.

Вот ваш раздел

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-TimeCard-20131218110938;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-TimeCard-20131218110938.mdf" 
     providerName="System.Data.SqlClient" /> 
    <add name="TimeCardConnectionString" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=TimeCard;Integrated Security=SSPI" 
     providerName="System.Data.SqlClient" /> 
    <add name="MCASConnectionString" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=MCAS;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    <add name="TimeCardConnectionString2" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=TimeCard;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

конфигурации Ваш живой сервер базы данных не знает, где находится localhost\SQLEXPRESS. Вам нужно будет обновить эти connections strings, чтобы указать на базу данных, которую использует ваш сервер.

Предполагаю, что вам также нужно будет обновить учетные данные.

+0

Можете ли вы посоветовать какой-либо пример, поскольку я только начинаю заниматься разработкой программного обеспечения – SPandya

+0

Дело в том, что я не могу прикрепить файл mdf к студии управления – SPandya

+0

@SPandya Я пытался расширить, я не совсем уверен, что еще могу add - можете ли вы связаться со службой поддержки вашего хостинг-провайдера, чтобы узнать о подключениях и развертывании базы данных? – Liath

0

Это один

connectionString="Data Source=.\SQLEXPRESS; 

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-TimeCard-20131218110938;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-TimeCard-20131218110938.mdf" 
     providerName="System.Data.SqlClient" /> 
    <add name="TimeCardConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TimeCard;Integrated Security=SSPI" 
     providerName="System.Data.SqlClient" /> 
    <add name="MCASConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MCAS;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    <add name="TimeCardConnectionString2" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=TimeCard;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
+0

. Я обнаружил, что ошибка возникает из-за базы данных LocalDb, присутствующей в папке App_Data. – SPandya

+0

@SPandya Используете ли вы файл '.mdf' –

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 is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details.

Есть два свойства LocalDB, которые вызывают проблемы при работе под полным IIS:

1.LocalDB needs user profile to be loaded

2.LocalDB instance is owned by a single user and private (by default)

Скорее всего, профиль пользователя не загружен. Если LocalDB выполняется в IIS, убедитесь, что загрузка профиля включена для текущего пользователя.

Поиск Google и нашел эту должность:

Using LocalDB with Full IIS, Part 1: User Profile

Я тоже была эта проблема, когда я развернула ASP.NET MVC 4 приложения на новый веб-сайт в моем локальном IIS и создали новое приложение бассейн. Как выше пост описывает один необходимо включить setProfileEnvironment = True для AppPool в файле

C:\Windows\System32\inetsrv\config\applicationHost.config. 

Так добавить

<add name="MyAppPoolName" /> 
<processModel identityType="ApplicationPoolIdentity" 
       loadUserProfile="true" 
       setProfileEnvironment="true" /> 
</add> 

После изменения кода конфигурации, не забудьте перезапустить приложение бассейн ,

Теперь вы должны прочитать эту вторую запись, чтобы иметь дело с LocalDB Instance собственности:

Using LocalDB with Full IIS, Part 2: Instance Ownership