1

以前にこの質問をしましたが、良い応答がありませんでした。私の問題は、 app_data フォルダーにローカル データベース (aspnetdb.mdf) があることです。 web.config の接続文字列は次のとおりです。

<add name="ApplicationServices" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" 
     providerName="System.Data.SqlClient" />

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

他のサーバーにはSQLサーバー2008があります(リモート接続が受け入れられ、同じインスタンス名SQLEXPRESSがあります)。できる限りのことを本当に試しましたが、良い結果は得られませんでした。私はあなたの助けに本当に感謝します、thx。

4

1 に答える 1

6

この形式は、ローカル接続を示します。

.\SQLEXPRESS

別のサーバーから、サーバー名または IP アドレスを指定する必要があります。

192.168.1.205\SQLEXPRESS
YOURMACHINE\SQLEXPRESS

インスタンスが SQL Server Express であることも検証する必要があります。他のほぼ同じ質問から、デフォルトのインスタンスのように見えます。

また、このばかげたユーザー インスタンス / attachDbFilename 手法の使用を停止する必要があります。Initial Catalog=aspnetdb;データベースをインスタンスに適切にアタッチし、接続文字列で使用して論理データベース名を参照します。このユーザー インスタンス機能は複数の理由で廃止されましたが、これもその 1 つです。

もちろん、サーバーが別のドメインにある場合、ファイアウォール設定が干渉している場合など、これを妨げる他のネットワークの問題があるかもしれません。サーバー名。

明らかに私のアドバイスが守られていないため、赤ちゃんのステップを提供する編集。新しいサーバーに aspnetdb データベースを実際にアタッチしたと仮定して、これを試してください。

 connectionString="data source=192.168.85.124\SQLEXPRESS;
   Integrated Security=SSPI;
   Initial Catalog=aspnetdb;" 

結局、SQL Express 名前付きインスタンスを使用していない場合は、次を試してください。

 connectionString="data source=192.168.85.124;
   Integrated Security=SSPI;
   Initial Catalog=aspnetdb;" 

SQL 認証には、Management Studio で使用するのと同じユーザー名/パスワードを使用します。

 connectionString="data source=192.168.85.124;
   User ID=username; Password=password;
   Initial Catalog=aspnetdb;" 

これは101のトラブルシューティングです。それでもうまくいかない場合は、何をしたのか、なぜうまくいかないのかを理解するのは不可能なので、10 分間コンサルタントを雇って修正してもらう必要があるかもしれません。

于 2012-08-05T21:25:11.923 に答える