2014-07-18 56 views
0

經過了一整天的嘗試打解決方案,我真的堅持在這裏。我得到臭名昭着的無法連接到任何指定的MySQL主機錯誤。這是一個非常普遍的錯誤,所以我已經嘗試了幾件事情。首先是一些細節,希望能有所幫助:無法連接到任何指定的MySQL主機 - MySQL連接器6.8.3和ASP MVC5

我使用:

  • 實體框架6
  • ASP.NET MVC 5
  • 的MySQL與MySQL連接器6.8.3

當我在Visual Studio 2013中運行應用程序時,一切正常。它連接到MySQL服務器沒有問題,所以我想我的連接字符串沒有問題。但是,當我部署我的應用程序時,出現此錯誤。我認爲這可能是因爲我的共享託管信任級別設置爲中等,但是我聯繫了我的託管服務提供商,他們表示它已設置爲「完整」。不使用數據庫的頁面正常渲染。

這裏是錯誤的堆棧跟蹤:

[MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.] 
    MySql.Data.MySqlClient.NativeDriver.Open() +1285 
    MySql.Data.MySqlClient.Driver.Open() +260 
    MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) +269 
    MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() +18 
    MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +403 
    MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() +228 
    MySql.Data.MySqlClient.MySqlPool.GetConnection() +106 
    MySql.Data.MySqlClient.MySqlConnection.Open() +1579 
    MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(DbConnection connection) +186 
    System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +118 

[ProviderIncompatibleException: The provider did not return a ProviderManifestToken string.] 
    System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +459 
    System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) +118 
    System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) +94 
    System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) +248 
    System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +618 
    System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +26 
    System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +72 
    System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() +21 
    System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider() +64 
    System.Linq.Queryable.Where(IQueryable`1 source, Expression`1 predicate) +85 
    DailyMusic.Models.DAL.ReviewRepository.GetMostRecentReviews(Int32 number) +487 
    DailyMusic.Controllers.HomeController.Index() +21 
    lambda_method(Closure , ControllerBase , Object[]) +79 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +242 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39 
    System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__36(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +12 
    System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +139 
    System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3c() +112 
    System.Web.Mvc.Async.<>c__DisplayClass45.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3e() +452 
    System.Web.Mvc.Async.<>c__DisplayClass30.<BeginInvokeActionMethodWithFilters>b__2f(IAsyncResult asyncResult) +15 
    System.Web.Mvc.Async.<>c__DisplayClass28.<BeginInvokeAction>b__19() +37 
    System.Web.Mvc.Async.<>c__DisplayClass1e.<BeginInvokeAction>b__1b(IAsyncResult asyncResult) +241 
    System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +111 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +19 
    System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__4(IAsyncResult asyncResult, ProcessRequestState innerState) +51 
    System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +111 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288 

回答

2

另一個幾個小時後,我找到了解決辦法。這是一個相當具體的問題,但也可能存在其他情況。

我在一個共享主機環境,並有兩個不同的憑據來訪問數據庫,一個用於遠程訪問,一個用於從服務器訪問。似乎遠程連接的憑證在服務器上不起作用,因此所有工作都在Visual Studio中,但一旦部署,我必須使用其他憑據。我認爲遠程憑證也可以在服務器上運行,但他們沒有。

相關問題