【问题标题】:ASP.NET Core 1.1 fails to run when publishedASP.NET Core 1.1 发布时运行失败
【发布时间】:2017-01-18 20:36:53
【问题描述】:

我有一个 ASP.NET Core 应用程序,我刚刚升级到 1.1。这个应用程序以前运行良好,我可以发布它(通过 Visual Studio 中的发布命令),它在 IIS 下运行良好。我最近将其更改为 1.1 并让应用程序在调试模式下运行良好。现在,当我发布它时,我得到了

502 - Web server received an invalid response while acting as a gateway or proxy server.

我打开了失败的请求跟踪规则,在那里我看到了以下内容

MODULE_SET_RESPONSE_ERROR_STATUS 

ModuleName httpPlatformHandler 
Notification EXECUTE_REQUEST_HANDLER 
HttpStatus 502 
HttpReason Bad Gateway 
HttpSubStatus 3 
ErrorCode The server is currently disabled. (0x8007053d) 

我发布的 web.config 文件如下所示

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="httpPlatform" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\Cranalytics.dll" forwardWindowsAuthToken="true" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>

我的 project.json 文件看起来像这样

{
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
    "Microsoft.EntityFrameworkCore": "1.1.0",
    "Microsoft.EntityFrameworkCore.InMemory": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",

    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.0",
    "Microsoft.AspNetCore.StaticFiles": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",

    "Microsoft.Extensions.Caching.Memory": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",

    "Syncfusion.Compression.MVC": "14.2600.0.32-preview2-final",
    "Syncfusion.XlsIO.MVC": "14.2600.0.32-preview2-final",

    "Microsoft.ApplicationInsights.AspNetCore": "1.0.2",

    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",

    "Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    },

    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0"
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
    //"net461": {
    //  "dependencies": {
    //  },
    //  "imports": "dnxcore50"
    //}
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config",
      "appsettings.Production.json",
      "appsettings.Staging.json",
      "appsettings.json"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

我找不到配置或 IIS 的问题。

编辑: 我对配置进行了一些更改,现在已经过了模块加载部分(至少根据跟踪日志)。现在,每当我访问该网站时,我都会收到 404。我可以毫无问题地查看静态图像,但是当我查看该站点的主页时出现 404 错误

ModuleName AspNetCoreModule 
Notification EXECUTE_REQUEST_HANDLER 
HttpStatus 404 
HttpReason Not Found 
HttpSubStatus 0 
ErrorCode The operation completed successfully. (0x0) 

我发布的目录结构是 IIS (/Cranalytics) 中根站点下的子站点。然后在该文件夹中是所有各种 DLL 以及 web.config。此目录下是项目的 wwwroot 目录。 IIS 子站点设置为指向根站点 (/Cranalytics)。

【问题讨论】:

  • 为什么是旧的 IIS 包?当前版本是nuget.org/packages/…
  • 您是否也安装了 1.1.0 运行时?
  • tseng 我改成1.1.0-preview4-final Martin 我在服务器上安装了DotNetCore.1.1.0-WindowsHosting
  • 你的项目框架和应用池中的框架一样吗?
  • 项目框架是 ASP.NET Core 1.1 并且 AppPool 没有托管代码作为框架版本

标签: c# asp.net iis asp.net-core


【解决方案1】:

一些可以提供帮助的想法。

1.Check Directory Browsing of your website if it is in enable state or not.
2.Try to separate your project to a new website with different port.
-also configure the newly created web site of course.
3.framework in application pool vs project, it must be the same.

【讨论】:

  • AppPool 的 .NET CLR 版本设置为无托管代码。目录浏览已启用。我无法创建单独的网站。因为它在已经建立的服务器上。在同一台服务器上还有其他 1.0 的子站点,甚至一些是 ASP.NET 的 RC。
  • 我创建了另一个测试网站是 IIS,使用端口 88 只是为了测试它,然后将该站点的副本复制到新端口 88 站点下的子站点中,当我查看时我得到了同样的错误IP:88 的新站点。我尝试从新站点上的模块列表中删除 httpPlatformHandler,但随后出现另一个错误,提示“处理程序“httpPlatformHandler”的模块列表中有一个错误模块“httpPlatformHandler””
【解决方案2】:

问题是该站点正在从 RC1 更新到 1.1。为了让 RC1 工作,我需要撤消几件事。在 IIS 中,当我创建站点时,我已将路径从子站点 Cranalytics 的根更改为其下方的 wwwroot。这必须撤消。

然后在配置中我需要有这样的东西,因为它是一个子站点。这也必须删除。

        //if (env.IsDevelopment())
        //{
        //    Configure1(app, env, loggerFactory, context);
        //}
        //else
        //{
        //    app.Map("/Cranalytics", app1 => Configure1(app1, env, loggerFactory, context));
        //}

【讨论】:

    猜你喜欢
    • 2017-03-31
    • 2017-11-02
    • 1970-01-01
    • 2017-07-17
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多