2016-04-24 13 views
2

私は、SQLデータベースとasp.net 5 WebアプリケーションでAzure試用アカウントを持っています。 dbサーバのファイアウォールには、自分のローカルコンピュータのIPに関するルールがあります。また、「Azureサービスへのアクセスを許可する」チェックボックスもオンになっています。私のローカルSql Server Managerからazureデータベースに問題なく接続できます。Azure WebアプリケーションがAzure DBにアクセスできない

ウェブアプリケーションの「アプリケーション設定/接続文字列」セクションにこの接続文字列が設定されています。私はこの接続文字列を使用してwepアプリケーションをチェックしています:

"Server=tcp:[MyServerName].database.windows.net,1433;Database=[MyDbName];User ID=[MyUserName]@[MyServerName];Password=[MyPassword];Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

この同じ接続文字列は、デスクトップクライアントで使用されていて問題ありません。 しかし、Webアプリケーションはサーバーに接続できません。この例外がスローされますが、これはかなり明確ですが、解決方法はわかりません。

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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

は、私は非常によく似た質問が求められている知っていないと、ここで答え、それらのどれも私が直面しています正確に同じ問題ではない、どちらも私のためのソリューションとなっています。

お時間をありがとうございます。試験として

UPDATE 1

、私は紺碧のDBに対して、私の地元のIIS上で実行するためのWebサイトを構成した、そしてそれはまた、動作します。したがって、デスクトップアプリケーション、SQL Serverマネージャ、およびIISは、ローカルコンピュータからこのデータベースにアクセスできます。もちろん私のIPはサーバのファイアウォールでホワイトリストに登録されていますが、Azureアプリサービスもホワイトリストに登録されており、アクセス権はありません。

enter image description here

UPDATE 2

ジョーRaioさんのコメントは、私は地域の設定を再確認作られ、ここで現在の設定のスクリーンショットです。私はすべてが正しいと信じています。

enter image description here

+0

はあなたにもDBのファイアウォールの設定にWebサーバのアドレスを追加しようとしたことがありますか?私はあなたのシナリオを再現しようとしますが、私はそれ以上のトラブルシューティングができるかどうかを確認する時間があります。 –

+1

ウェブサイトはAzure App Servicesでホストされているため、IPの検索方法はわかりません。しかし、SQL Serverのファイアウォール設定では、Azureのすべてのアプリケーションをホワイトリストに登録すると思われる「Azureサービスへのアクセスを許可する」ルールが有効になっています。 –

+0

Webアプリケーションの[プロパティ]タブをクリックすると、IPアドレスを表示できます。あなたが記述しているものからWebアプリケーションのIPアドレスを追加する必要はありません。それは動作するはずです。 WebアプリケーションとSQLデータベースの両方が同じAzure Geo Regionでホストされていますか? –

答えて

1

The web app has this connection string set up in its 'Application Settings/Connection strings' section. I'have checked the wep app IS using this connection string:

あなたはASP.net アプリケーションの接続文字列を設定するところではありません。

があなたのファイルappsettings.jsonを開き、最初のセクションには、以下のデータ

"Data": { 
    "DefaultConnection": { 
     "ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=aspnet5-WestEuroSODBAccess-96be0407-8bee-4c89-97e5-f6711136f106;Trusted_Connection=True;MultipleActiveResultSets=true" 
    } 

置きそこに接続文字列が含まれている必要があります。これと同様に

"Data": { 
    "DefaultConnection": { 
     "ConnectionString": "Server=tcp:[MyServerName].database.windows.net,1433;Database=[MyDbName];User ID=[MyUserName]@[MyServerName];Password=[MyPassword];Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" 
    } 

これで問題を解決できます。もともと私はASP.net 5アプリケーションとしてこれを設定していたとは思いませんでした。

追加情報はここで見つけることができます:http://docs.asp.net/en/latest/fundamentals/configuration.html

+0

あなたの努力に感謝しますが、私はすでにそれをしました。そして、それはローカルで実行されて完全に細かく動作しますしかし、私はウェブサイトを公開すると、それは動作しません。安全性は私の心配ではないので、私はウェブサイトで使用されている接続文字列を印刷しても正しいです(ローカルIIS、SSMS、デスクトップアプリケーションで動作します)が、公開するとエラー40になります。エンティティフレームワークに関連付けることはできますか? –

+0

私はちょうど新しいリソースグループ、dbサーバー、dbとWebアプリケーション(すべて西ヨーロッパで)を設定してテストを行いました。その後、ASP.net 5アプリケーションを作成し、appsettings.jsonの接続文字列を更新して公開しました。それは完璧に働いて、ここでそれを見ることができます:http://jmrwesteuroweb.azurewebsites.net/。問題を引き起こしている何か他のものがなければならない。 URLまたはプロジェクトファイルを私に電子メールで送ることができますか?それらをあなたに見ていただければ幸いですか? [email protected]。 –

+0

何かが思い浮かび上がるのは、エラーが "named pipes"の問題だと言われていますが、接続tringには "tcp"があります。私は2つの異なるプロトコルがあることを理解しています。多分それは役に立つものです。 –

関連する問題