2017-04-01 33 views
1

我正在開發一個項目,我有兩臺服務器,一臺登錄服務器和一臺服務於該應用程序的輔助服務器。輔助服務器是ASP.NET Core,但第一個是ASP.NET MVC,因爲我無法使用Identity在Core中使用Angular2的令牌。在VS2015中,斷點適用於MVC,但不適用於Core。我希望它能夠解決問題,我希望能夠到2017年。儘管我的A2項目有效,但方法正在被調用,但是根本沒有任何斷點。調試器說沒有代碼的調試信息。我已經進入項目設置並告訴它生成完整的pdb(在構建設置的底部,在'高級'下),我關閉了'只是我的代碼'並打開了.NET代碼中斷。這些都是我可以在網上找到的所有建議。我的斷點仍未被擊中。調試在ASP.NET Core或VS2017中不起作用

+0

我發現非CORE一個,我的global.asax已被移動。我仍然無法在VS2015或VS2017中調試CORE項目。 – cgraus

+0

好的,如果我創建了一個新項目,它就會起作用(並不奇怪)。因此,我將從另一個項目中導入代碼直到它破壞... – cgraus

+0

在我的情況中,我曾經將模式從'Debug'更改爲'Release',但忘記將其更改回'Debug'。在'Release'模式下,正如人們所期望的那樣,它當然不會觸及'breakpoints'。 – nam

回答

11

這可能有助於某人。

當您在發佈中調試時,中斷點不會被打中。

確保您在按f5或運行時選擇調試。

+0

謝謝 - 這確實是默認釋放,但我很早就檢查過了。 :) – cgraus

+0

@PieterdeVries感謝您分享您的建議,因爲它解決了我的問題。在將應用程序安裝到生產環境時,我有'Release'模式,但忘記將模式更改回'Debug'。+1 – nam

+0

在上一個VS中,它在釋放模式打開時工作。 – teapeng

0

OK,似乎我從一個地方web.config文件,像這樣:它

<system.webServer> 
    <handlers> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/> 
    </handlers> 
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/> 
    </system.webServer> 

說不上來是怎麼來的,但如果我把它註釋掉,調試工作...

0

嘗試調試.NET Core Web應用程序時,請確保您已連接到正確的進程。當我加入w3wp.exe流程時,我遇到了OP描述的相同問題。

當我附加到dotnet.exe進程我能夠按預期中斷。

僅供參考,這是在.NET Core 2.0 Web應用程序上。

以下鏈接是關於使用.NET Core遠程調試的,但其中的一部分仍然適用。從鏈接

Remote Debug ASP.NET Core on a Remote IIS Computer in Visual Studio 2017

簡要摘錄:

類型進程名稱的首字母快速查找dotnet.exe(對於ASP.NET核心)。 注意:對於ASP.NET Core應用程序,以前的進程名稱爲dnx.exe。

單擊附加。