may*_*ʎɐɯ 2 c# asp.net-core-3.1
我创建了一个 Core 3.1 应用程序,它使用基于 .net 标准 2.0 的 Web 服务。
在本地开发环境中一切正常。在我将其部署到 UAT (IIS) 上之前,我收到以下异常:
Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Private.ServiceModel, Version=4.1.2.4, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
File name: 'System.Private.ServiceModel, Version=4.1.2.4, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at MyNameSpace.Service.TheService..ctor()
Run Code Online (Sandbox Code Playgroud)
经过一段时间的研究,我发现了这一点:
甄兰 回复
首先,将文件复制
%USERPROFILE%\.nuget\packages\system.private.servicemodel\4.4.2\runtimes\unix\lib\netstandard2.0\system.private.servicemodel.dll到函数应用的根目录。如果未找到该文件,您可以从 nuget.org 下载 Nuget 包。然后,将以下内容复制/粘贴到项目的 .csproj 文件中。它将包括用于构建和发布的 SPSM.dll。
Run Code Online (Sandbox Code Playgroud)<ItemGroup> <None Update="System.Private.ServiceModel.dll"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> </ItemGroup> <Target Name="CopySPSM" BeforeTargets="Build"> <Copy SourceFiles="System.Private.ServiceModel.dll" DestinationFolder="$(OutputPath)\bin" /> </Target>
我还检查了Protobuf-net 缺少依赖项 System.Private.ServiceModel和无法在 Azure Function v2 中加载文件或程序集“System.Private.ServiceModel”而没有太大进展。
我已遵循答案并确保该文件位于我的部署中,但仍然存在相同的问题,出了什么问题以及如何解决该问题?
当我提出问题时,我取得了一些进展,并想与那些可能面临同样问题的人分享我的答案。
据我了解,这是用于我的项目的 Web 服务部分,因此它在我的本地环境中提供服务。但是,当我将其部署在 UAT IIS(Internet 信息服务器)上时,默认情况下它没有此功能。
因此,将文件添加为我的问题中提到的其他答案并没有帮助。这可能与选择正确的版本有关,对此一无所知。
我修复它的方法是,我刚刚System.Private.ServiceModel通过 NuGet 管理器将最新版本的 NuGet 包安装到我的 Web 应用程序项目中。
<ItemGroup>
<PackageReference Include="System.Private.ServiceModel" Version="4.7.0" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
在UAT上重新部署后,问题解决并且立即生效。
| 归档时间: |
|
| 查看次数: |
3005 次 |
| 最近记录: |