我曾经使用asp.net mvc4,在IIS中,我的网站的物理路径将指向我的解决方案目录,每次更新代码时,我只需重新构建我的解决方案,然后就可以使用“Attach to process”(w3wp)开始调试。 在asp.net内核中,当我将自己的网站发布到文件系统时,我可以使用IIS来运行我的网站,但当我将我的IIS网站指向我的网站解决方案代码时,却显示了502错误。
它告诉dotnet在应用程序发布后运行publish-iis工具。How it works: publish-iis工具将转到应用程序发布的文件夹(不是您的项目文件夹),并检查它是否包含web.config文件。如果不包含,它将创建一个。如果包含,它将检查您拥有的应用程序类型(即,它是面向完整CLR还是面向核心CLR,以及对于核心CLR,它是可移植应用程序还是独立应用程序)并将设置processPath和arguments属性的值,同时删除%LAUNCHER_PATH%和%LAUNCHER_ARGS%占位符。
5条答案
按热度按时间9ceoxa921#
你不需要在IIS中运行.Net Core来获得简单的调试等,就像我们过去所做的那样。
有了.Net Core,您只需在项目根目录下打开一个命令行,然后键入“dotnet run”
DotNet Run使用环境变量来驱动它的功能。因此,如果您希望站点在特定URL或端口上运行,请键入:
或者,如果您只是希望它在不同的端口上运行
然后设置环境
设置完所有环境变量后,键入
现在,要调试它,您可以在cmd.exe的标题中附加dotnet run。这样您就可以调试代码了。
现在,如果您使用的是Visual Studio,在项目的属性下有一个名为“launchSettings.JSON”的文件。您可以在此处配置配置文件,我将默认配置文件设置为Kestrel Development,然后是Kestrel Production,IIS最后一个设置,这样我就不会在IIS Express中运行F5。
我的LaunchSettings.json看起来像这样:
第一个配置文件是当你按下F5时使用的,所以当我按下F5时,Visual Studio会为我启动dotnet run,并设置环境和URL,如launchSettings.JSON中我的配置文件的environmentVariables部分所指定的。
现在,因为我有多个配置文件,我得到了一个下拉菜单旁边的运行按钮,所以我可以选择Kestrel生产,如果我想在生产模式下运行本地。
3hvapo4f2#
按照这些步骤去做,就能达到你的目的。
1.在launchSettings.json中,在
iisSettings
下添加一个名为iis
的属性,如下所示:1.在
profiles
部分下,添加一个将commandName
设置为IIS
的新配置文件。我将我的配置文件命名为Local IIS
。这将在运行下拉列表中添加一个名为Local IIS
的新选项。1.在IIS中创建网站。将主机名设置为
my.aspnetcoreapp.com
。还要为此网站创建/使用其.NET CLR版本设置为“无托管代码”的应用程序池。1.将该网站的物理路径设置为您的asp.net核心项目的位置,而不是解决方案的位置,当然,除非您将该项目与解决方案放在同一个文件夹中。
1.在主机文件中添加一个环回条目(适用于Windows C:\Windows\System32\drivers\etc\hosts)
127.0.0.1 my.aspnetcoreapp.com
1.返回Visual Studio并运行应用程序。确保从“运行”下拉列表中选择了“本地IIS”配置文件。这将在显示 “正在设置IIS..." 的简短加载消息后,在浏览器中的URL处启动应用程序。
1.完成!从现在开始,您可以在该URL启动应用程序,还可以通过附加到进程 * w3 wp * 进行调试。
您也可以通过指定类似
localhost/MyAspNetCoreApp
而不是my.aspnetcoreapp.com
的ULR,将应用托管在 “Default Web Site” 下。如果您这样做,将创建一个名为MyAspNetCoreApp AppPool
的新应用池。关于这个。
5cg8jx4n3#
简单回答:当您发布时,您调用一个启动
publish-iis
工具的脚本(请参见project.json
中的script
部分)。在您的项目中,您有一个
web.config
文件,其中包含如下内容:如您所见,有占位符
"%LAUNCHER_PATH%"
和%LAUNCHER_ARGS%
参数。请记住这些参数。现在打开project.json文件,您将看到一个“scripts”部分,看起来如下所示:
它告诉dotnet在应用程序发布后运行publish-iis工具。How it works:
publish-iis工具将转到应用程序发布的文件夹(不是您的项目文件夹),并检查它是否包含web.config文件。如果不包含,它将创建一个。如果包含,它将检查您拥有的应用程序类型(即,它是面向完整CLR还是面向核心CLR,以及对于核心CLR,它是可移植应用程序还是独立应用程序)并将设置processPath和arguments属性的值,同时删除%LAUNCHER_PATH%和%LAUNCHER_ARGS%占位符。
fnvucqvd4#
**为什么需要这个?**这个过程将有助于持续开发和调试代码,在这里我们不需要反复部署应用程序,也不需要按F5键来运行应用程序,只需更改代码和构建,您就可以看到应用程序正在使用最近的更改。
说明:
注意:请访问Microsoft官方网站以了解更多详细信息。(调试ASP.NET核心应用程序部分)https://learn.microsoft.com/en-us/visualstudio/debugger/how-to-enable-debugging-for-aspnet-applications?view=vs-2022
cgvd09ve5#
只需运行
Ctrl + F5
,您就可以在运行站点的同时更改代码,而无需重新启动站点。