Asp.net mvc 从命令行在IISExpress中运行ASP.NET

Asp.net mvc 从命令行在IISExpress中运行ASP.NET,asp.net-mvc,asp.net-mvc-5,asp.net-core,iis-express,Asp.net Mvc,Asp.net Mvc 5,Asp.net Core,Iis Express,我在IISExpress下从命令行运行ASP.NET5时遇到问题 我当前的命令行设置(感谢)看起来是这样的 iisexpress.exe/config:“[project_dir].vs\config\applicationhost.config”/site:“WebUI”/apppool:“Clr4IntegratedAppPool” 请注意,在VS2015中运行项目效果良好 当我运行上面的命令时,IISExpress启动,它甚至找到了应该运行的正确端口。主要问题是每个请求都返回502.3 查

我在IISExpress下从命令行运行ASP.NET5时遇到问题

我当前的命令行设置(感谢)看起来是这样的

iisexpress.exe/config:“[project_dir].vs\config\applicationhost.config”/site:“WebUI”/apppool:“Clr4IntegratedAppPool”

请注意,在VS2015中运行项目效果良好

当我运行上面的命令时,IISExpress启动,它甚至找到了应该运行的正确端口。主要问题是每个请求都返回502.3

查看
IISExpress\TraceLogFiles
的内容,我看到了这个错误

ModuleName:httpPlatformHandler

通知:执行\u请求\u处理程序

HttpStatus:502

HttpReason:坏网关

HttpSubStatus:3

错误代码:服务器当前已禁用。(0x8007053d)


这是什么原因造成的?为什么我不能让它运行

applicationhost.config可能指向项目的根目录,在该目录中,项目的默认web.config文件有一行如下所示:

<aspNetCore processPath="%LAUNCHER_PATH%"
            arguments="%LAUNCHER_ARGS%" 
            stdoutLogEnabled="false"
            stdoutLogFile=".\logs\stdout"
            forwardWindowsAuthToken="false"/>

Visual Studio(以及
dotnet publish
命令)将在F5启动期间用ASP.NET核心应用程序的实际路径替换启动器变量;我不确定这个新的web.config文件存储在哪里

也就是说,通过以下步骤,我能够在ASP.NET核心应用程序中使用IIS Express的命令行调用

  • 运行
    dotnet发布
  • 将applicationhost.config文件从.vs目录复制到发布输出目录
  • 修改新applicationhost.config中我的应用程序引用发布输出目录的路径
  • 运行iisexpress.exe并指向新的applicationhost.config文件

  • 正如前面的回答所指出的,VisualStudio在启动iisexpress时设置%LAUNCHER_PATH%和%LAUNCHER_ARGS%环境变量。如果设置了这些参数,则不必运行
    dotnet publish
    ,但是,这些参数的内容在不同版本的Visual Studio中略有变化。幸运的是,您可以使用Process Explorer查看其中的内容。引用一篇好的博客文章:


    当我遇到这个问题时(我不得不使用iisexpress,而不是使用
    dotnet run
    ,因为我运行的是一个带有遗留组件的应用程序),我将LAUNCHER\u ARGS=“-p C:\$XXX\$MY\u PROGRAM.exe”和LAUNCHER\u PATH:设置为上面的值,启动这个应用程序对我来说很有效。我建议使用Process Explorer查找Visual Studio在其中放置的内容,并使用它来编写启动命令。

    是否安装了httpPlatformHandler 1.2?如果你这样做了-你能显示你的web.config文件吗?这能回答你的问题吗?
    So in fact Visual Studio silently adds the two environment variables when launching IIS Express, so that ASP.NET Core related bits can be injected.
    
    LAUNCHER_ARGS: -debug -p “C:\Program Files\dotnet\dotnet.exe” -a “exec \”C:\Users\lextm\documents\visual studio 2017\Projects\WebApplication2\WebApplication2\bin\Debug\netcoreapp1.0\WebApplication2.dll\”” -pidFile “C:\Users\lextm\AppData\Local\Temp\2\tmpFD6D.tmp” -wd “C:\Users\lextm\documents\visual studio 2017\Projects\WebApplication2\WebApplication2”
    LAUNCHER_PATH: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Web Tools\ProjectSystem\VSIISExeLauncher.exe```