サーバーからの結果受信時にトランスポートレベルのエラーが発生した
SQL Serverのエラーが発生しています。
トランスポートレベルのエラーが発生しました
サーバーから結果を受け取る際に サーバーから結果を受信すると(プロバイダ。共有メモリ プロバイダー、エラー。0 - そのハンドルは 無効です)
SQL Server 2008 SP1、Windows 2008 Standard 64bitを使用しています。
.Net 4.0のWebアプリケーションです。サーバーにリクエストがあると発生します。断続的に発生します。どうしたら解決できるでしょうか?
161
20
データベース接続は、データベースサーバーによって閉じられます。 接続はアプリの接続プールで有効なままです。その結果、共有接続文字列を取得して実行しようとすると、データベースに到達できません。 Visual Studioを開発している場合は、タスクバーの一時的なWebサーバーを閉じるだけです。
生産中に発生した場合、Webサイトのアプリケーションプールをリセットすると、接続プールがリサイクルされます。
コマンドプロンプトで以下のコマンドを実行してみてください。
これにより、ネットワークスタックのオートスケーリング機能がオフになります。
私も同じ問題を抱えていました。 Visual Studioを再起動すると、問題が修正されました。
IISを使用していない人のために、Visual Studio 2010でデバッグするときにこの問題がありました。 私はすべてのデバッガープロセスを終了しました:問題を解決したWebDev.WebServer40.EXE。
必要なのは、ASP.NET開発サーバーを停止して、プロジェクトを再度実行することだけです。
トランスポートレベルのエラーは、多くの場合、壊れているSQLサーバーへの接続にリンクされています。 ... 通常ネットワーク。
Timeout Expiredは通常、SQLクエリの実行に時間がかかりすぎる場合にスローされます。
したがって、いくつかのオプションは次のようにすることができます。
1。 VPN(使用されている場合)またはその他のツールでの接続を確認します。 2。 IISを再起動します。 3。 マシンを再起動します。 4。 sqlクエリを最適化します。
このエラーの詳細を示すMSDNブログを見てください。
Microsoft SQL Server Managementを介してデータベースに接続している場合は、すべての接続を閉じて再試行してください。 別のAzure Databaseに接続しているときにこのエラーが発生しましたが、接続を閉じたらうまくいきました。 まだ原因はわかりませんが...。
これは、常に約5分の操作の後に行われました。 調査したところ、e1iexpressからの警告は常に障害の前に発生していることがわかりました。 これは明らかに、特定のTCP / IPアダプターに関連するエラーです。 しかし、WiFiからハードワイヤードに変更しても影響はありませんでした。
プランBを試して、Visual Studioを再起動しました。 その後、それはうまくいきました。
よく調べてみると、正しく機能しているときに、「スレッド '」というメッセージが表示されていることに気づきました。コード0で終了したのは、以前の試行でランがクラッシュしたほぼ正確な時刻です。 一部のグーグルは、サーバーが(とりわけ)スレッドプールをトリミングしているときにそのメッセージが表示されることを明らかにしています。
おそらくスレッドプールに偽のスレッドがあり、サーバーが「トリミング」しようとするたびにアプリがダウンしました。
このメッセージは、スクリプトによってSQLサービスが何らかの理由で停止した場合に表示されます。そのため、SQLサービスを再度起動すれば、問題は解決するでしょう。
これはすべての人に役立つとは限らないことは知っています(知っているかもしれませんが、おそらくそうです)。同じ問題があり、しばらくして、原因がコード自体から何かであることに気づきました。
サーバーに到達しようとしているコンピューターは別のネットワーク内にあり、接続を確立できましたが、その後削除されました。
修正に使用した方法は、静的なルートをコンピューターに追加して、ファイアウォールを通過せずにサーバーに直接アクセスできるようにすることでした。
サンプル:
私はそれが誰かを助けることを願っています、少なくとも手がかりとしてこれを持っている方が良いので、あなたがそれに直面した場合、あなたはそれを解決する方法を知っています。
Visual Studion 2012開発環境でも同じエラーが発生し、IIS Expressを停止してアプリケーションを再実行すると、動作し始めました。
私の場合、「SQL Server」サーバーサービスが停止しました。 クエリを実行してエラーを排除できるサービスを再開したとき。
クエリを調べて、クエリによってこのサービスが停止した理由を確認することもお勧めします。
。![ここに画像の説明を入力してください](http://i.stack.imgur.com/dnhXS.png。)。
このエラーで見つけた理由の1つは、接続文字列の「パケットサイズ= xxxxx 」です。 xxxxの値が高すぎる場合は、このエラーが表示されます。 この値を削除して、SQLサーバーに処理させるか、ネットワーク機能に応じて低く保ちます。
SQLデータベースを復元しようとしていて、[オプション]タブの[チェックボックス]をオンにして確認したときに、それが起こりました。
。![ここに画像の説明を入力してください](http://i.stack.imgur.com/kCn3T.jpg。)。
これはスタンドアロンのデータベースサーバーであるため、SSMSを閉じて再度開くだけで問題が解決しました。
これは、データベースが削除されて再作成されたときに発生します。一部の共有リソースは、データベースがまだ存在することを考慮しているため、実行クエリを再実行して、データベースが再作成された後にテーブルを作成すると、エラーが再び表示されず、
コマンドが正常に完了しました。
メッセージはエラーメッセージの代わりに表示されますMsg 233、レベル20、状態0、行0サーバーにリクエストを送信するときにトランスポートレベルのエラーが発生しました。 (プロバイダー:共有メモリプロバイダー、エラー:0-パイプのもう一方の端にプロセスはありません。)
。データベースをドロップして再作成する場合は、このエラーを無視し、心配することなくDDLクエリを再実行してください。
私も同じ問題を抱えていました。 SQL Server LOGを切り捨てて解決しました。 それを確認してから、このソリューションが役立つかどうかを教えてください。
私にとっての答えは、OSを2008R2から2012R2にアップグレードすることです。iisresetまたはreart apppoolのソリューションは、私には機能しませんでした。 TCP Chimney Offload設定も変更しようとしましたが、サーバーは本番サーバーであるため再起動しませんでした。
私にとっての解決策はまったく異なっていました。
私の場合、datetimestampパラメーターを必要とするオブジェクトソースがありました。 そのODSパラメータConvertEmptyStringToNullがtrueであったとしても、1/1/0001はSelectMethodに渡されていました。 これにより、その日時がSQLサーバーに渡されたときに、SQL日時オーバーフローの例外が発生しました。
datetime.yearの追加チェックを追加しました。 != 0001そしてそれは私のためにそれを解決しました。
デートタイムのオーバーフローエラーではなく、トランスポートレベルのエラーが発生するのは奇妙です。 とにかく。.
最近、ビジネスサーバーとデータベースサーバーの間でこのエラーが発生しました。 私たちの解決策は、ネットワークインターフェイスの「IPオフロード」を無効にすることでした。 その後、エラーはなくなりました。