1

私は過去数週間この問題を抱えていましたが、多くのことを学びましたが、まだ解決策を見つけることができていません.

基本的に私が得ているエラーは次のとおりです。

SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)

スタックトレース:

[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: 26 - Error Locating Server/Instance Specified)]
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +6351920
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +412
   System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity) +6366506
   System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject) +180
   System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) +6366917
   System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +6366793
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +352
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +831
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +49
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +6368598
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +78
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +2194
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +89
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +6372110
   System.Data.SqlClient.SqlConnection.Open() +300
   System.Data.SqlClient.SqlProviderServices.UsingConnection(SqlConnection sqlConnection, Action`1 act) +132
   System.Data.SqlClient.SqlProviderServices.UsingMasterConnection(SqlConnection sqlConnection, Action`1 act) +3981391
   System.Data.SqlClient.SqlProviderServices.GetDbProviderManifestToken(DbConnection connection) +10513049
   System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +44

[ProviderIncompatibleException: The provider did not return a ProviderManifestToken string.]
   System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection) +11121429
   System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) +239
   System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) +61
   System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input) +221
   System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +442
   System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +25
   System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +89
   System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator() +21
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +382
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +80
   _2ndBrain.Controllers.BrainController.Index() in c:\users\apis\documents\visual studio 2010\Projects\2ndBrain\2ndBrain\Controllers\BrainController.cs:22
   lambda_method(Closure , ControllerBase , Object[] ) +79
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +264
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
   System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +129
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +826266
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +314
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +825488
   System.Web.Mvc.Controller.ExecuteCore() +159
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375

接続文字列で SSMS を使用してこのデータベースに接続できます。

<add name="ApplicationServices" connectionString="Data Source=sql7.hostinguk.net;Integrated Security=False;Database=orchard_chris;User Id=*****;Password=*******;" providerName="SqlServer" />

さらに、オーチャードは同じ資格情報を使用してデータベースに接続できるため、カスタムビルドのアプリが接続できない理由がわかりません。

助けてくれてありがとう、クリス・スティーブンス

編集:

この問題に関するヘルプをまだ探しています。IISとSSMSを介してデータベースに接続できるため、接続文字列の問題ではないと思います。

また、ホスティングプロバイダーに問題が何であるかを尋ねたところ、次のように答えてくれました。

使用しているユーザーの詳細が機能していれば、文字列は問題ないはずです。詳細が正しい場合の最も一般的な原因は、メンバーシップ プロバイダーを設定するときに接続文字列名を指定していないことです。つまり、既定でマシン文字列になります。使用しているプロバイダーが正しい文字列名を参照していることを確認してください。

これが何を意味するのかよくわかりませんが、これが解決策になるでしょうか?

編集2:

また、下記1、2、3について確認いたしました。4と5の確認方法がわかりません。

  • サーバー名が正しいことを確認してください。たとえば、名前にタイプミスがないことを確認してください。
  • インスタンス名が正しいこと、およびターゲット マシンに実際にそのようなインスタンスがあることを確認してください。[更新: 一部のアプリケーションは \ を に変換します。アプリケーションが不明な場合は、接続文字列で Server\Instance と Server\Instance の両方を試してください]
  • サーバー マシンが到達可能であることを確認します。たとえば、DNS が正しく解決されていること、サーバーに ping を実行できることなどです (常に正しいとは限りません)。
  • サーバーで SQL Browser サービスが実行されていることを確認します。
  • サーバーでファイアウォールが有効になっている場合は、sqlbrowser.exe および/または UDP ポート 1434 を例外にする必要があります。

また、サーバーがリモート接続を許可するように構成されていることも確認しました。

4

3 に答える 3

0

だから、誰かを助けることができるかもしれないことを願って、しばらくしてこれに戻ってきます. 私のコードには、忘れていた不正な DbContext : base("UnicornsDatabase") が含まれていることが判明しました。

この場合、「UnicornsDatabase」接続文字列が存在しないか、存在しないデータベースに移動しました。

本当にバカばっか。助けてくれてありがとう。

于 2013-05-15T09:05:28.013 に答える
0

必ず InnerException を確認してください。

私のものはLogin failed for user 'IIS APPPOOL\\dev.XXXXXXXX.com'-簡単に修正されました

役に立たないというひどい例外The provider did not return a ProviderManifestToken string

于 2012-12-12T01:16:14.867 に答える
0

DbProvider好きなサーバーからの応答が得られません。サーバー名、ユーザー名、およびパスワードをトリプルチェックします。

からプロバイダー名を変更してみてください

providerName="SqlServer"

providerName="System.Data.SqlClient"

また、に詳細情報が記載されProviderIncompatibleExceptionているかどうInnerExceptionかも確認してください。

于 2012-10-17T20:15:51.980 に答える