【发布时间】:2020-05-27 20:04:38
【问题描述】:
这是我之前发布的问题的延续。
我们使用以下技术开发了一个 .NET Core Web API 应用程序:
-NET Core (3.1)
-Visual Studio 2019
很遗憾,我们不得不将上述应用部署到以下环境:
-32 位环境
-Windows Server 2008 R2 Enterprise (Service Pack 1)
-IIS 7.5 版
-8 GB 内存
(另外,它必须是进程内的,因为我们只希望 .NET Core Web API 应用程序位于 IIS 服务器中)*
在使用 Visual Studio 2019 的开发计算机上,我安装了 Net Core 3.1 x86 sdk 版本(即 .NET Core 32 位版本)
另外,在 Windows 10 环境变量的 Path 变量中,我确保在 .NET Core 64 位版本目录路径上方指定了 .NET Core 32 位版本目录路径:
因此,我在 Visual Studio 2019 中启动了该应用程序。 此外,在 .NET Core Web Api Web 应用程序部分的属性中,我确保选择了 x86 设置值: 在 VS 中强制 x86 转到属性 > 构建并将平台目标从任何 CPU 更改为 x86
对于调试部分,我有:
此外,在 Visual Studio 2019 Enterprises 中 --->工具(在主菜单中) 我们取消了“为网站和项目使用 64 位版本的 IIS Express”
应用程序的 blabhblah.csproj 文件具有以下设置:
< Project Sdk="Microsoft.NET.Sdk.Web" > < PropertyGroup > < TargetFramework >netcoreapp3.1 < /TargetFramework > < AspNetCoreHostingModel > InProcess < /AspNetCoreHostingModel > < PlatformTarget > x86 < /PlatformTarget > < /PropertyGroup > < PropertyGroup Condition="'$(MSBuildRuntimeType)' == 'Core'" > < GenerateResourceMSBuildArchitecture > CurrentArchitecture < /GenerateResourceMSBuildArchitecture > < GenerateResourceMSBuildRuntime > CurrentRuntime < /GenerateResourceMSBuildRuntime > < /PropertyGroup >…………….. < ItemGroup > < PackageReference Include="Microsoft.AspNet.WebApi.Core" Version="5.2.7" / > < PackageReference Include="Microsoft.Data.SqlClient" Version="1.1.3" / > < PackageReference Include="Swashbuckle.AspNetCore" Version="5.4.1" / > < PackageReference Include="Swashbuckle.Core" Version="5.6.0" / > < /ItemGroup >
另外,我在 Web 应用程序的根目录中创建了一个 Directory.Build.targets 文件:
< Project > < PropertyGroup Condition="'$(OS)' == 'Windows_NT' and '$(PlatformTarget)' == 'x86' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(SelfContained)' != 'true'" > < RunCommand >$(MSBuildProgramFiles32)\dotnet\dotnet< /RunCommand > < /PropertyGroup > < /Project >
但是,当我运行应用程序时,我收到以下错误:
HTTP 错误 500.31 - ANCM 未能找到常见的本机依赖项 此问题的解决方法:指定版本 未找到 Microsoft.NetCore.App 或 Microsoft.AspNetCore.App。 ANCM 检测到的特定错误:无法执行,因为 未找到指定的命令或文件。造成这种情况的可能原因 包括: * 你拼错了一个内置的 dotnet 命令。 * 你打算 执行 .NET Core 程序,但 dotnet-%LAUNCHER_ARGS% 不执行 存在。 * 您打算运行一个全局工具,但使用 dotnet 前缀 在 PATH 上找不到具有此名称的可执行文件。 故障排除步骤:检查系统事件日志中的错误消息 启用记录应用程序进程的标准输出消息 调试器到应用程序进程并检查更多信息 访问:https://go.microsoft.com/fwlink/?LinkID=2028526
有人可以帮我确定如何解决上述“dotnet”缺失错误吗? 我需要对设置/配置进行任何其他修改吗?
【问题讨论】:
-
这个错误是在Windows Server 2008 R2的环境下出现的吗?还是开发环境产生的错误?
标签: asp.net-core iis .net-core x86 32-bit