0

我使用的Visual Studio 2015更新3 我ASP.NET MVC 4網站。目標框架:.NET Framework 4.5。該網站有自己的數據庫。該網站在本地工作並與數據庫交互((LocalDb)\v11.0)。部署到微軟Azure網站Asp.net MVC網站拋出錯誤

然後我用發佈按鈕部署現場Azure網站通過VS。 Web App已成功發佈。但我無法在瀏覽器中打開它。我收到以下錯誤的瀏覽器:

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.


堆棧跟蹤:

[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.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) +1000 
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +800 
    System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +38 
    System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +741 
    System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +85 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +451 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +108 
    System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +943 
    System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +143 
    System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +22 
    System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +139 
    System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +367 
    System.Data.SqlClient.SqlConnection.Open() +129 
    WebMatrix.Data.Database.EnsureConnectionOpen() +47 
    WebMatrix.Data.<QueryInternal>d__0.MoveNext() +67 
    System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source) +183 
    WebMatrix.Data.Database.QuerySingle(String commandText, Object[] args) +98 
    WebMatrix.WebData.DatabaseWrapper.QuerySingle(String commandText, Object[] parameters) +19 
    WebMatrix.WebData.SimpleMembershipProvider.CheckTableExists(IDatabase db, String tableName) +54 
    WebMatrix.WebData.SimpleMembershipProvider.CreateTablesIfNeeded() +50 
    WebMatrix.WebData.WebSecurity.InitializeMembershipProvider(SimpleMembershipProvider simpleMembership, DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean createTables) +71 
    WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +51 
    WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +55 
    OnlineAuction.MvcApplication.SetSecurityOptions() +60 
    OnlineAuction.MvcApplication.Application_Start() +51 

[HttpException (0x80004005): 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.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +477 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +176 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +350 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +303 

[HttpException (0x80004005): 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.Web.HttpRuntime.FirstRequestInit(HttpContext context) +657 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +96 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189 

這裏是我的數據庫連接字符串中Web.config

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=OnlineAuctionDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\OnlineAuctionDb.mdf" providerName="System.Data.SqlClient"/> 

我上傳整個Web.config fi le到DropBox


這是數據庫的問題嗎?我已經發布了整個網站,使用VS中的發佈按鈕。但可能數據庫沒有附加到雲網絡應用程序?我不確定。如果問題在於缺少數據庫,我如何發佈與網站相關的數據庫以便它們一起工作?

回答

1

問題肯定是網站無法找到或與數據庫進行通信。有幾種方法可以做到這一點,但你需要弄清楚要如何託管數據庫 - 它看起來像你使用SQL,所以你的選擇是:

  1. 的SQL Express /的LocalDB上例如,您的網站上
  2. Azure的SQL數據庫(將在Azure和訪問您的網站託管)
  3. SQL Server中的虛擬機託管在Azure中
  4. 另一個SQL數據庫的其它託管(處所也許)並運行可以通過混合連接來訪問

我建議使用選項2,因爲它爲您提供了可隨您的應用程序擴展的開箱即用管理解決方案,但是可以通過網絡尋址,因此您的Web應用程序的多個實例可以共享它,並自動備份等。等等。

也許分享一些更多的信息,你已經得到了什麼或者你想要達到什麼?

+0

我已經在Azure中創建了SQL數據庫。試圖連接我的Web應用程序和SQL它失敗:https://stackoverflow.com/questions/40699106/how-to-deploy-asp-net-mvc-site-with-existing-database-to-microsoft-azure-web -app – Chichi

+0

其他鏈接有完全不同的失敗 - 它連接但模式未創建 –