2013-10-15 75 views
1

我一直在做一個VS13 Express和MVC 5的網站。我使用的是使用Owin的ExternalLogin。該項目使用公理生成的本地數據庫。 在本地它的作品完美。 使用WebDeploy部署網站時,將[db] .mdf部署到服務器,但執行登錄時無法找到數據庫。發佈網站(WebPublish)登錄數據庫未找到後

這裏是我的connectionString在web.config中:

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WhyIsItBad2-20131015123340.mdf;Initial Catalog=aspnet-WhyIsItBad2-20131015123340;Integrated Security=True" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

而這裏的設置爲WebDeploy

Configuration: Release 
File Publish Options: Remove additional files at destination 

Databases: 
---------- 
ApplicationDbContext(DefaultConnection) 
Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\lissie\Desktop\WhyIsItBad2\WhyIsItBad2\App_Data\aspnet-WhyIsItBad2-20131015123340.mdf;Integrated Security=True;Connect Timeout=30 
Use this connection string at runtime(update destination web.config) 
Execute Code First Migrations (run on application start) 

正如你可以看到我已經遷移激活。 在WebDeploy的預覽步驟中,數據庫出現在數據庫部分。部署不會產生任何錯誤。

但在網站嘗試登錄時,我得到這個錯誤:

Server Error in '/' Application. 

    The system cannot find the file 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. 

Exception Details: System.ComponentModel.Win32Exception: The system cannot find the file specified 

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: 

    [Win32Exception (0x80004005): The system cannot find the file specified] 

    [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: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)] 
     System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5296071 
     System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +558 
     System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +5308555 
     System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +145 
     System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +920 
     System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +307 
     System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions) +434 
     System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +225 
     System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +37 
     System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions userOptions) +558 
     System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions) +67 
     System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1052 
     System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78 
     System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +167 
     System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +143 
     System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +83 
     System.Data.SqlClient.SqlConnection.Open() +96 
     System.Data.Entity.SqlServer.<>c__DisplayClass2f.<UsingConnection>b__2d() +73 
     System.Data.Entity.SqlServer.<>c__DisplayClass1.<Execute>b__0() +10 
     System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func`1 operation) +189 
     System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation) +77 
     System.Data.Entity.SqlServer.SqlProviderServices.UsingConnection(DbConnection sqlConnection, Action`1 act) +229 
     System.Data.Entity.SqlServer.SqlProviderServices.UsingMasterConnection(DbConnection sqlConnection, Action`1 act) +376 
     System.Data.Entity.SqlServer.SqlProviderServices.GetDbProviderManifestToken(DbConnection connection) +200 
     System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +85 

    [ProviderIncompatibleException: The provider did not return a ProviderManifestToken string.] 
     System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +269 
     System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices, DbConnection connection) +33 

    [ProviderIncompatibleException: An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct.] 
     System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices, DbConnection connection) +193 
     System.Data.Entity.Infrastructure.<>c__DisplayClass1.<ResolveManifestToken>b__0(Tuple`3 k) +31 
     System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) +72 
     System.Data.Entity.Infrastructure.DefaultManifestTokenResolver.ResolveManifestToken(DbConnection connection) +180 
     System.Data.Entity.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest) +56 
     System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) +43 
     System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) +62 
     System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) +123 
     System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +575 
     System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +18 
     System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +53 
     System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() +15 
     System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider() +38 
     System.Linq.Queryable.Where(IQueryable`1 source, Expression`1 predicate) +63 
     Microsoft.AspNet.Identity.EntityFramework.<GetUserIdAsync>d__2.MoveNext() +728 
     System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93 
     System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52 
     Microsoft.AspNet.Identity.<GetUserIdForLoginAsync>d__3.MoveNext() +184 
     System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93 
     System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52 
     Microsoft.AspNet.Identity.Owin.<SignInExternalIdentityAsync>d__1e.MoveNext() +245 
     System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93 
     System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52 
     Microsoft.AspNet.Identity.Owin.<SignInExternalIdentityAsync>d__0.MoveNext() +181 
     System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93 
     System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52 
     WhyIsItBad2.Controllers.<ExternalLoginCallback>d__27.MoveNext() +460 
     System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93 
     System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52 
     lambda_method(Closure , Task) +23 
     System.Threading.Tasks.TaskHelpersExtensions.ThrowIfFaulted(Task task) +33 
     System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) +68 
     System.Web.Mvc.Async.<>c__DisplayClass34.<BeginInvokeAsynchronousActionMethod>b__33(IAsyncResult asyncResult) +16 
     System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
     System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
     System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 
     System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3c() +50 
     System.Web.Mvc.Async.<>c__DisplayClass45.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3e() +225 
     System.Web.Mvc.Async.<>c__DisplayClass30.<BeginInvokeActionMethodWithFilters>b__2f(IAsyncResult asyncResult) +10 
     System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
     System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
     System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 
     System.Web.Mvc.Async.<>c__DisplayClass28.<BeginInvokeAction>b__19() +26 
     System.Web.Mvc.Async.<>c__DisplayClass1e.<BeginInvokeAction>b__1b(IAsyncResult asyncResult) +100 
     System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10 
     System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49 
     System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 
     System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13 
     System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36 
     System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54 
     System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +39 
     System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12 
     System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +28 
     System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54 
     System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +29 
     System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 
     System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__4(IAsyncResult asyncResult, ProcessRequestState innerState) +21 
     System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36 
     System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +54 
     System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +31 
     System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
     System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9628700 
     System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 

對於我理解這個問題是應用程序無法找到數據庫。 我還沒有在谷歌中找到任何東西來幫助我解決這個問題。

回答

0

嘗試將「(LocalDb)\ v11.0」更改爲「。」。 (不含引號)

0

確保您已在本地安裝了SQL Server並且該服務正在運行。

1
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-WhyIsItBad2-20131015123340;Integrated Security=True" providerName="System.Data.SqlClient" /> 

我試着刪除; AttachDbFilename = | DataDirectory目錄| \ ASPNET-WhyIsItBad2-20131015123340.mdf從連接字符串和它的工作。