1

ローカルでNorthwind.mdfに接続しますが、アプリケーションをリモートサーバーにアップロードすると、次のエラーが発生します。

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

これらは私が試したいくつかのオプションです:

<connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>

上記のものはローカルで動作します。

<connectionStrings>
            <add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\ASP\TestSite\App_Data\Northwind.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True;Trusted_Connection=Yes"/>
        </connectionStrings>

サーバーにSQLServer2005がインストールされている

ありがとう、
Ilija

4

4 に答える 4

1

確認すべき点がいくつかあります。

  1. データベースファイルは本当にその場所にありますか?
  2. アプリプールには、そのディレクトリに対する読み取り/書き込み権限がありますか?
  3. SQL Expressサービスは実際に実行されていますか?
于 2010-12-21T15:37:11.263 に答える
1

次の手順に従います。1:SQL Server Management Studioを使用して、サーバー上のSqlServer2005にNorthwind.mdfを接続します。2:web.configの接続文字列を変更して、サーバー上のデータベースを指すようにします。

dbをデタッチ/アタッチする方法。

于 2010-12-21T15:59:42.957 に答える
1
Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\ASP\TestSite\\App_Data\\Northwind.mdf;Integrated Security=True;User Instance=True

次に、リモート接続を許可するようにSQLServer2005を構成する方法をお読みください

そして、Northwind.mdfの場所が正しいことを確認してください!

于 2010-12-21T16:16:47.233 に答える
1

確認すべき点がいくつかあります。

  • 共有ホスティング環境にデプロイしている場合、ホストがWebサーバー上でSQLServerを実行していない可能性があります。確認して提供するように依頼します。

  • 使用している接続文字列が疑わしいようです。SQLサーバーがサーバーにインストールされているが、「デフォルト」インスタンスとしてインストールされている場合\SQLEXPRESSは、接続文字列の一部は必要ありませんData Source.またはを使用するだけ(local)です。

  • 実際にSQLExpressがインストールされていて、インスタンス名でインストールされている場合SQLEXPRESSは、サイトIDに有効なログインとデータベースへの正しいアクセス許可があることを確認してください。このIDは、ワーカープロセスアカウント(NETWORK SERVICE、、ApplicationPoolIdentityカスタムアカウント)またはサイトのIIS匿名アカウント(ASP.NETの偽装が有効になっている場合)の場合があります。

私の最後のポイントは重要です:

  • AttachDbFilenameおよびは、「ユーザーインスタンスUser Instance=True」と呼ばれる概念をサポートするSQLExpressに固有のものです。この機能は、専用または共有ホスティング環境には適していません。

私のアドバイスは

  • 使用できるSQLServerのバージョンとエディションを正確に確認してください
  • ホストされている場所を確認します(サーバー上または別のマシン上でローカルに)
  • 「デフォルト」インスタンスとして構成されているのか、名前付きインスタンスとして構成されているのかを確認します
于 2010-12-22T01:10:19.447 に答える