14

Visual Studio 2012の多層アプリケーションでT-SQLストアドプロシージャをデバッグするにはどうすればよいですか?

明確にするために、VS 2012のsprocにブレークポイントを設定し、同じデバッグセッションでASP.NETWebFormsアプリからsprocが呼び出されたときにブレークポイントを設定したいと思います。

VS 2010の場合と同じ手順に従う場合、ブレークポイントはsproc内でヒットしません。

SQL Server 2008 R2 ExpressデータベースのsprocでのT-SQLのデバッグは、VisualStudio2010で期待どおりに機能します。

すべてが正しく有効になっていることを確認するために、VS 2010(ここ)の手順を確認しましたが、VS2012または.NET4.5にはそのようなページはありません。

欠落している手順は「アプリケーションのデバッグ」を有効にすることのようですが、VS2012の[サーバーエクスプローラー]>[データ接続]コンテキストメニューにはそのようなオプションはありません。

VS2010アプリケーションのデバッグ

ここに画像の説明を入力してください

VS2012アプリケーションのデバッグなし

ここに画像の説明を入力してください

4

4 に答える 4

28

「ServerExplorer」ではなく「SQLServerObjectExplorer」を開く必要があります。これが2010と2012の違いです。次に、サーバーを右クリックして「ApplicationDebugging」を選択します。

于 2012-11-22T13:00:16.773 に答える
3

これはVS2012およびSQL2012用です。はい、他のバージョンでは多少異なりますが、同様の設定に従います。さまざまな設定を適切に行う必要があるため、注意が必要です。そうしないと機能しません。

  • すべての正しいオプションを使用したVSとSQLの両方のバニラインストール(これを行う方法はこの記事の範囲外です)

  • 環境全体に対する完全な管理者権限とSQLに対するsysadmin権限(基本的には開発環境。実稼働環境ではこれを実行したくない場合)

  • コントロールパネルからインストールされたWindows機能である完全なローカルIISで.netWebアプリを常にデバッグします

    • .netプロジェクトのプロパティ、Webに移動し、ローカルIIS Webサーバーを使用します(デフォルトのポート80にも固執します)
  • VS sql serverデータベースプロジェクトを使用してデータベースなどを開発している間、私は常に完全なスタンドアロンローカルSQLで作業します。スキーマ比較を使用して、VSで行われた変更でそのSQLを更新します(これを行う方法はこの記事の範囲外です)

    • spのそのコピーにブレークポイントを設定しないでください。そのバージョンのspは単なる青写真であり、ランタイムバージョンではありません
  • .netプロジェクトのプロパティ、Web、.netおよびSQLサーバーで有効になっているデバッガー(下部)に移動します

  • SQLサーバーオブジェクトエクスプローラーを表示します(サーバーエクスプローラーではありません)

    • [SQLサーバーの追加]をクリックし、sysadminクレデンシャルを使用して完全なローカルSQLサーバーを追加します(このような作業には常にsaを使用します)
    • 完全なローカルSQLサーバーを右クリックして、アプリケーションのデバッグを有効にします
    • spを見つけて右クリックしてコードを表示し、そこにブレークポイントを追加します。これはspのランタイムバージョンです(spに変更を加えることは決してないことに注意してください。データベースプロジェクトの下のマスターコピーでこれらを変更します)
  • ソリューションを再構築し、緑色の矢印Internet Explorerをクリックして、IDE内からデバッグモードで.netWebアプリを実行します。

私は何も忘れていないことを願っています。私が持っている場合、私は私の投稿を修正しに来ます。

これはすべて複雑に聞こえるかもしれません。です。しかし、少しの規律と忍耐があれば、それは貴重です。幸運を。

于 2015-12-09T15:12:22.807 に答える
1

これを行う最も簡単な方法は、DBをプロジェクトとしてソリューションに追加することだと思います。これを行うには、SQL Server Object Explorer(SSOX)でDBを右クリックします。これは、DBを開発およびデバッグするための非常に優れた方法です。プロジェクトにDBを追加した後、任意の場所にブレークポイントを追加し、LocalDB(または必要に応じて別のターゲット)に対してデバッグできます。このアプローチの最大の欠点は、既存のデータが一緒に移行されないことです(ただし、変更をSQL DBに自由に簡単に公開できます)。詳細なガイダンスについては、MSDNのSSDTに関するドキュメントを参照してください。

于 2012-08-20T15:16:13.763 に答える
0

次の詳細な記事では、.Netアプリケーションの実行時にストアドプロシージャのデバッグを有効にする方法を正確に説明しています。

http://www.sqlmag.com/content1/topic/debugging-stored-procedures-142054/catpath/sql-server

于 2012-08-18T06:55:41.853 に答える