【问题标题】:Deploying a netcoreapp1.1 to Azure将 netcoreapp1.1 部署到 Azure
【发布时间】:2017-03-29 07:18:21
【问题描述】:

我有 netcoreapp1.1,我正在尝试使用 WebDeploy 发布到 Azure。我可以执行 dotnet publish 并将内容部署到 Azure,但该站点只是说“您无权查看此目录或页面。”,这表明该应用程序未运行。

我以前的应用程序使用 net461 作为目标框架,我注意到发布这些(使用dotnet publish)会导致创建一个 web.config 文件,这解释了 IIS 如何运行它,但这并没有当目标框架为 netcoreapp1.1 时发生。

我用来发布的命令是这样的: dotnet publish --configuration Release --runtime win7-x64 --output .deploy

这是我的项目文件:

<Project Sdk="FSharp.NET.Sdk;Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <RuntimeIdentifiers>win7-x64</RuntimeIdentifiers>
    <OutputType>Exe</OutputType>
  </PropertyGroup>
  <PropertyGroup>
     </PropertyGroup>

  <ItemGroup>
    <Compile Include="Controllers/*.fs" />
    <Compile Include="Startup.fs" />
    <Compile Include="Program.fs" />

    <None Remove="**/*.fs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="FSharp.Core" Version="4.1.*" />
    <PackageReference Include="FSharp.NET.Sdk" Version="1.0.*" PrivateAssets="All" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" />
  </ItemGroup>

</Project>

我打算如何在 Azure 上运行 netcoreapp1.1?它必须是自包含的还是可以让 Azure 应用服务从 dll 运行它?

编辑:

手动将 web.config 复制到我的发布目录中,我可以让应用程序运行。如何让dotnet publish 自动创建它? 另外,我仍然对我之前的问题感到好奇。

【问题讨论】:

  • 我不确定它是否与您相关,但这里我们遇到了。经典的 ASP.NET 和 Core 的运行方式是不同的。使用 ASP.NET Core azure 运行包含 Kestrel Http 服务器的可执行文件。这意味着您无法在运行时替换现有的可执行文件。我们必须停止服务复制文件并再次运行它。但是我们使用 Octupus 进行部署。
  • 感谢您的回复。这是真的,但我的 WebDeploy 配置已经处理了这个问题:) 部署成功,但除非我手动将正确的 web.config 复制到发布目录中,否则应用程序不会启动。
  • 嗯,我的 .proj 文件结构和你一样。当我运行 msbuild /t:restore; msbuild /t:构建;我的 PC 上的 msbuild /t:publish 我在发布文件夹中得到了我需要的一切。您的项目根目录中有 web.config 吗? PS,我用的是VS 2017。如果你愿意,我可以分享我们项目结构的截图。

标签: azure deployment f# asp.net-core .net-core


【解决方案1】:

将需要复制web.config的信息添加到csproj文件中,如下所示:

<ItemGroup>
  <Content Update="web.config">
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  </Content>
</ItemGroup>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多