8

同じデータ センター内の SQL Azure データベースと通信する azurewebsites に単純な mvc Web サイト (VS インターネット テンプレートを使用) があります。この時点でのデータベースは、組み込みの SimpleMembership Provider を実行するだけです。既定の App_Data mdf ファイルから Azure SQL に既に切り替えています。正常に動作しますが、しばらくすると次のようになることがあります。

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

長いメッセージで:

SQLExpress データベース ファイルの自動作成エラー:

接続文字列は、アプリケーションの App_Data ディレクトリ内のデータベースの場所を使用して、ローカルの Sql Server Express インスタンスを指定します。プロバイダーは、データベースが存在しないと判断したため、アプリケーション サービス データベースを自動的に作成しようとしました。アプリケーション サービス データベースの存在を正常に確認し、アプリケーション サービス データベースを自動的に作成するには、次の構成要件が必要です。

しかし、SQL Server Express を使用した接続文字列がありません!

Web サイトをすぐに再起動しても、エラーは解消されません。

何も変更せずに、15 分後に Web サイトを再起動すると、次のようになります。

502 - ゲートウェイまたはプロキシ サーバーとして機能しているときに、Web サーバーが無効な応答を受信しました。

お探しのページに問題があり、表示できません。Web サーバー (ゲートウェイまたはプロキシとして機能している間) が上流のコンテンツ サーバーに接続したときに、コンテンツ サーバーから無効な応答を受け取りました。

以前は、VS から再公開するだけで、Web サイトを正常な状態に戻すことができました。しかし、この 1 時間、試行錯誤しましたが、Web サイトを再び機能させることができません。

SQL Server Express の問題は実際には何ですか?

私の接続文字列セクションは次のとおりです。

<connectionStrings>
  <add name="DefaultConnection" connectionString="Server=tcp:sabl6h4---.database.windows.net,1433;Database=MVC;User ID=test@sabl6h4---;Password=----;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SqlClient" />
  <add name="Entities" connectionString="metadata=res://*/Data.Model1.csdl|res://*/Data.Model1.ssdl|res://*/Data.Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=sabl6h4---.database.windows.net;initial catalog=MVC;user id=test;password=----;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
 </connectionStrings>

念のため、sabl6h4---.database.windows.net をコピーして SSMS に貼り付け、ログイン テストを使用して接続したところ、問題なくデータベースが開かれました。


1 日後: 新しい azurewebsite を作成し、まったく同じプロジェクトと同じ web.config を公開しました。問題なく正常に動作します。数分後、まったく同じエラーが発生しました。


さらに 3 時間後: ランチに行って戻ってきて、ブラウザの [更新] ボタンをクリックすると、Web サイトが再び表示されます。誰かがバックエンドの設定をいじっていると確信しています。

4

2 に答える 2

1

私もこのエラーがありました。しかし、私の場合、接続文字列が公開ウィザードによって上書きされていることに気付きませんでした。パブリッシュ ウィザードの [設定] タブに移動し、[実行時にこの接続文字列を使用する (更新先 web.config)] のチェックを外すことで問題を解決しました。

于 2015-11-11T15:40:23.180 に答える