我已将我的应用程序从ASP.NET Core v1.1更新为ASP.NET Core 2.0。
我的开发机器上的一切正常。但是当我部署到Azure时,我得到"HTTP Error 502.5 - Process Failure"
作为回复。
我已经在web.config中激活了日志:
<aspNetCore processPath=".\PublicWeb2.Web.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
日志说:
无法初始化CoreCLR,HRESULT:0x80004005
如果我从Kudo的命令提示符运行dotnet mysite.dll
,我会收到同样的错误。
Azure中的事件日志会出现以下错误:
具有物理根'D:\ home \ site \ wwwroot \'的应用'MACHINE / WEBROOT / APPHOST / XXXXX'无法使用命令行'D:\ home \ site \ wwwroot \ XXX'启动进程,ErrorCode ='0x80004005 :80008089。
相关Azure设置:
我完整的csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<UserSecretsId>XXXXXXXXXXX</UserSecretsId>
<RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers>
<WebProject_DirectoryAccessLevelKey>1</WebProject_DirectoryAccessLevelKey>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MarkdownWeb" Version="1.3.4" />
<PackageReference Include="MarkdownWeb.Git" Version="1.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.0.0" />
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\XXX\XXX.csproj" />
</ItemGroup>
</Project>
云服务上安装的Dotnet版本:
D:\home\site\wwwroot>dotnet --info
.NET Command Line Tools (2.0.0)
Product Information:
Version: 2.0.0
Commit SHA-1 hash: cdcd1928c9
Runtime Environment:
OS Name: Windows
OS Version: 6.2.9200
OS Platform: Windows
RID: win8-x86
Base Path: D:\Program Files (x86)\dotnet\sdk\2.0.0\
Microsoft .NET Core Shared Framework Host
Version : 2.0.0
Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d
我做了什么(从阅读其他SO问题):
win7-x86
作为第一个运行时标识符
COREHOST_TRACE=1
,但控制台以kudo挂起(并且管道到日志不起作用,即dotnet myapp.dll > mylog.txt
)我不知道接下来该做什么。
答案 0 :(得分:5)
终于搞定了。
在webproject的csproj文件中,我删除了<RuntimeIdentifiers>
元素(如果您指定了单个运行时,则为<RuntimeIdentifier>
)。
<RuntimeIdentifier>
。pubxml可以在
下的解决方案资源管理器中找到Project -> Properties -> PublishProfiles -> yourfilename.pubxml.
删除以下行(指定了运行时)
<RuntimeIdentifier>win7-x86</RuntimeIdentifier>
保存文件并关闭它。
下次运行publish命令时,它应该说&#34; portable&#34;在Settings
选项下:
这对我有用。
因此我的猜测是真正的解决方案是:
RuntimeIdentifier
RuntimeIdentifier