簡體   English   中英

如何附加針對以net47為目標的IIS中運行的ASP.NET Core網站的調試器?

[英]How to attach debugger for ASP.NET Core web site running in IIS targeting net47?

我剛剛將一個大型舊站點轉換為Net Core。 由於某些舊代碼,我必須定位到net47而不是netcoreapp2.0 / netstandard2.0。

問題是,當我在IIS中運行站點時,它可以正確啟動,但是隨后我無法附加調試器。 進程列表(調試|附加到進程)根本不顯示dotnet.exe進程。

要對此進行調查:

  • 我在Visual Studio 2017中創建了一個針對netcoreapp2.0的新ASP.NET Core Web應用程序,
  • 發表(dotnet發布)並
  • 將我的IIS網站指向發布目錄。

到達該站點后,我可以附加到dotnet.exe進程了。 這是.csproj文件:

 <Project Sdk="Microsoft.NET.Sdk.Web"> <!-- dotnet.exe shows up in process list in Visual Studio 2017 --> <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.3" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.1" /> </ItemGroup> </Project> 

然后,我將其重新定位到net47,因為這是我的網站所使用的。

  • 因為Microsoft.AspNetCore.All不支持net47,所以我用足夠的單個軟件包替換了它,以使站點可以編譯。
  • 發布了它(dotnet發布-f net47)。
  • 將IIS站點指向新的net47發布目錄。

我可以加載該網站,然后瀏覽。 但是,dotnet.exe不再出現在進程列表中。

 <Project Sdk="Microsoft.NET.Sdk.Web"> <!-- dotnet.exe does NOT show up in process list in Visual Studio 2017 --> <PropertyGroup> <TargetFramework>net47</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="2.0.*" /> <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.0.*" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.*" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.*" /> <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.0.*" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.*" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.*" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.*" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.*" /> <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.*" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.1" /> </ItemGroup> </Project> 

有什么方法可以調試以Net Framework為目標的IIS中運行的網站?

我的經驗是,您必須附加與Web應用程序的可執行文件匹配的進程名稱; 默認值為項目名稱。

是否出現w3wp.exe? 如果是這樣,請查看是否選擇該選項進行調試。 如果它的目標是47並且在IIS中運行,則可能是使用IIS的w3wp進程。

鑒於我所見,這是一個猜測; 目前尚無法驗證。 讓我知道它是否有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM