web-dev-qa-db-ja.com

Visual Studioブレークポイントがヒットしない

IISプロセス(w3wp.exe)にアタッチするときに問題が発生していると思われるASP.NET MVCプロジェクトを使用しています。私は自分のローカルマシンでソリューションとIIS 8.5を実行しているので、これがネットワークと関係があるとは思わないでしょう。私にとって奇妙なのは、ローカルでデバッグする他のソリューションのブレークポイントにヒットできることです。

私が正確に抱えている問題は、ブレークポイントが赤い中空の円に変わり、ヒットしないことです。通常、これに対する修正はソリューションのクリーン/リビルドですが、これは機能していません。ページに「throw new Exception」を追加し、例外が表示されるようにすることで、コードが更新されていることを確認しました。繰り返しますが、この問題はこの1つのソリューションでのみ発生します。私がデバッガを実行する他のソリューションは問題なく動作します。また、アプリプール、Webサイト、IIS、およびコンピューターの再起動も試みました。

私が読んだ記事のいくつかは、アンチウイルスプログラムがリモートデバッガーがプロセスにアクセスするのをブロックできると述べました。ただし、セットアップ全体がローカルマシンに含まれているため、問題になるとは思えません。私は最近、みんなのマシンに多くの変更を加えている新しいIT担当者を雇ったので、少し心配しています。

追加するもう1つのポイントは、このWebアプリケーションでユニークなことです。IISのバインディングです。サブドメインに関連するいくつかのカスタム機能を活用するために、バインディングは「*」です。

それまでの間、私は解決策を探し続けますが、誰かがこの1つの解決策を適切にデバッグできない原因を考えている場合は、本当に感謝しています。

編集:ASP.NET一時ファイルを削除することを提案するソリューションを見つけました。運がありません。

45

解決しました。デバッグメニューで選択された誤った構成であることになりました。誤って、ドキュメントのシンボルをロードできないリリース構成に切り替えました。デバッグ構成に切り替えて、ブレークポイントが正常にヒットするようになりました。

以下に記載されているAbacusに追加するために、それはビルドを台無しにしているweb.config変換である可能性があります。この場合、web.configのコンパイルセクションからdebug属性を削除するリリース構成があります。以下は、スクリーンショットの例とVisual Studioのビルド構成のドロップダウンリストです。

注:また、プラットフォームが構成と共に正しいことを確認してください。私の場合、Dev.Debug|Mixed Platformsはソリューションを正しくビルドしませんが、Dev.Debug|Any CPUはビルドします。

Build Configuration List

64

「管理互換モード」を有効にします。 [ツール]-> [オプション]-> [デバッグ]に移動し、管理互換モードを有効にします。

29

これを修正しようとして永遠に苦労しました。最後に、これが私のためにしたことです。

SelectDebug-> Options-> Debugging-> General

Tick。NET Frameworkソースステッピングを有効にする

(これはあなたがする必要があるすべてかもしれませんが、あなたが私のような場合、あなたはまた以下に述べられたものをしなければなりません。

Selectツール->オプション->プロジェクトとソリューション->ビルドと実行

UntickスタートアッププロジェクトとRunの依存関係のみをビルド」のチェックボックス

SelectAlways Buildから「実行時、プロジェクトが古くなっている場合」ドロップダウンから。

19
Anselm

これはOPの問題ではないことは知っていますが、プロジェクトでこれが発生しました。ソリューションには複数のMVCプロジェクトがあり、間違ったプロジェクトがスタートアップとして設定されていました。

また、プロセス/デバッガーを開始するだけで、新しいブラウザーウィンドウを開かないようにプロジェクトの構成を設定しました。

Visual Studio Project Properties

そのため、表面上はデバッガが起動しているように見えますが、間違ったプロセスに対しては起動しています。そのため、それを確認し、複数のプロセスにもアタッチできることに注意してください。

約30分間頭を悩ませる愚かな間違い。

Attach to both processes

16
kroolk

プロジェクトを右クリックし、次にPropertiesを左クリックして、Webタブを選択します。

ケースに適したサーバーが選択されているかどうかを確認します。

  • IISローカル

  • IIS Express

8
legui

Xamarin.Formsプロジェクトでも同じ問題が発生しました。修正は、PCLを.NET 4.6から.NET Standard 2.0に手動で変換することでした。

PCL Advanced Build Configuration

Visual Studio Macの場合:プロジェクトごとに実行してください

mac-screenshot

4
Sean Anderson

Visual Studioメニューに移動します。

デバッグ->プロセスにアタッチ

次に、下の画像のように、選択ボタンをクリックします。

Attach to process

次に、次のように「デバッグするコードのタイプを自動的に決定する」オプションが選択されていることを確認します。

Select code type

3
Rahul

私の場合、このソリューションは便利です。

解決策:デバッグ/全般設定の「Just My Code」オプションを無効にします。

![enter image description here

参照: c-sharpcorner

2
mayank

この問題は、チェックを外すことで解決しました

プロパティ>ビルド>コードの最適化

webページのプロパティ画面([一般]の下)で設定します。

Screenshot.

2
Brent

Visual Studio 2017では、リリース構成モードになっていないことを確認する必要があります。

  1. ビルドメニューddlを開きます
  2. 構成マネージャーをクリックします
  3. 「リリース」から「デバッグ」に変更

configuration manager debug

1
Tom McDonald

私のシナリオでは、MVCアプリとWebAPIを1つのソリューションで使用し、ローカルIIS(エクスプレスではない)を使用しています。

また、IISのサイトを実際のドメインとして設定し、実際のドメインを入力できるようにホストファイルを編集しました。すべてが機能します。また、2つのことに気付きました。

  1. MVCコードのデバッグは完全に機能していました。

  2. プロセスへのアタッチも完全に機能しました。デバッグ中にAPIのブレークポイントに到達しませんでした。

これが私にとっての解決策でした:

右クリックwebapiプロジェクト>プロパティ> Web>プロジェクトURL

デフォルトではlocalhostを指しますが、IISでサイトを設定したため、URLをWebサイトドメインに変更するのを忘れました(つまり、locahostの代わりに、http:// {domain-name} /と言う必要があります)。

1
Yaniv

ソリューション内のプロジェクトの1つがリリースモードに設定されました。 Debugモードに戻したところ、ブレークポイントがヒットしています。

1
Anand Joshi

誰かがVisual Studio 2017とIISを使用していて、Webサイトプロジェクトをデバッグしようとしている場合、次のように機能しました。

  1. WebサイトプロジェクトをIISに接続します。
  2. File-> Add-> Existing Web Site ...でソリューションに追加し、inetpub/wwwrootディレクトリからプロジェクトを選択します。
  3. ソリューションエクスプローラーでWebサイトプロジェクトを右クリックし、Property Pages-> Start Optionsを選択します
  4. Specific Pageをクリックして、スタートアップページを選択します(サービス用Service.svc、Webサイトで使用する場合Default.aspxまたは選択したページのカスタム名)。
  5. カスタムサーバーを使用するをクリックして、書き込みます

http(s):// localhost /(IISに表示されるWebサイト名)

例:http://localhost/MyWebSite

それでおしまい! WebサイトがIISで実行されており、デバッグするWebサイトがスタートアッププロジェクトとして選択されていることを忘れないでください(右クリック- >スタートアッププロジェクトとして設定)。

元の投稿: IISで実行されているASP.NETプロジェクトをデバッグする方法

1
Derorrist

あなたの右クリック 事業、左クリック 物性、選択します Web タブ。 デバッガー> ASP.NET

0
erdal tosun

私の場合、実際のプロセスは元の開始プロセスとは異なります。

通常、ローカルホストサービスはw3wp.exeプロセスを介してバインドします。私の場合、カスタムプロセスが使用されました。それに変更することで問題は解決しました。

もう1つ、リリースモードからデバッグモードに変更します。リリースモードでは、PDBファイルはブレークポイントの詳細で更新されません。そのため、アプリケーションをDebugモードでデバッグしていることを確認してください。

0
Gopi P

VS2017でMicrosoftアカウントにログインしていない場合、IISプロセスにアタッチしている間はブレークポイントをヒットできません。

0
GeorgiG

上記のいずれも機能しない場合は、コードを再確認してください。ブレークポイントがヒットしていないように見える理由は、ブレークポイントを含むコードブロックが不注意な理由で実行されていないことが原因である場合があります。

たとえば、コードをコピーして貼り付けるときに、「Handles Me.Load」を忘れてしまったことが何度かあります。

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    --this block of code will not execute
    End Sub 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    --this block executes
    End Sub
0
Jeff