从命令行在IISExpress中运行ASP.NET

Chr*_*ris 5 asp.net-mvc iis-express asp.net-mvc-5 asp.net-core

我无法从IISExpress下的命令行运行ASP.NET5。

我当前的命令行设置(由于此答案)看起来像这样

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

请注意,从VS2015内部运行项目效果很好。

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

看内容IISExpress\TraceLogFiles我看到这个错误

ModuleName:httpPlatformHandler

通知:EXECUTE_REQUEST_HANDLER

HttpStatus:502

HttpReason:错误的网关

HttpSubStatus:3

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

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

Ste*_*idi 0

applicationhost.config 可能指向项目的根目录,在该目录中,项目的默认 web.config 文件有一行类似于以下内容:

<aspNetCore processPath="%LAUNCHER_PATH%"
            arguments="%LAUNCHER_ARGS%" 
            stdoutLogEnabled="false"
            stdoutLogFile=".\logs\stdout"
            forwardWindowsAuthToken="false"/>
Run Code Online (Sandbox Code Playgroud)

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

也就是说,我能够通过以下步骤获得适用于我的 ASP.NET Core 应用程序的 IIS Express 的命令行调用。

  1. 跑步dotnet publish
  2. 将 applicationhost.config 文件从 .vs 目录复制到发布输出目录。
  3. 修改我的应用程序的新 applicationhost.config 中的路径以引用发布输出目录。
  4. 运行 iisexpress.exe 并指向新的 applicationhost.config 文件。