2016-03-29 125 views
2

我在IISExpress下从命令行运行我的ASP.NET5时遇到了问题。从命令行在IISExpress中运行ASP.NET

我目前的命令行设置(感谢this answer)看起来像这样

iisexpress.exe /config:"[project_dir].vs\config\applicationhost.config” /网站: “Web用户界面”/应用程序池:“Clr4IntegratedAppPool”

请注意,从VS2015内运行项目工作正常。

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

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

模块名:httpPlatformHandler

通知:EXECUTE_REQUEST_HANDLER

的HTTPStatus:502

HttpReason:错误的网关

HttpSubStatus :3

ErrorCode:服务器当前被禁用。 (0x8007053d)

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

+0

您是否安装了httpPlatformHandler 1.2?如果你这样做 - 你可以显示你的web.config文件吗? – Pawel

回答

0

的对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 Core应用程序的实际路径;我不确定这个新的web.config文件存储在哪里。

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

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