Jef*_*ker 6 wcf azure azure-web-app-service asp.net-core-2.0
我正在尝试将 asp.net core 2.1 webapp 部署到 azure 应用程序服务。Web 应用程序使用 wcf 服务,因此包含对 wcf 的引用。一切都在编译和开发机器上运行良好。但是,当它部署到 azure 应用程序服务时,webapp 无法启动。它抛出一个错误
Could not load file or assembly 'System.Private.ServiceModel, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
我尝试发布独立的和依赖于框架的应用程序。是否有一些特殊的方式我需要包含或引用这个包?
在尝试在 ASP.NET Core 2.1 应用程序中使用 SoapCore NuGet 包后,我遇到了类似的解决方案。在 Windows 10 本地运行良好,但在我发布到 Azure 后给出了与原始海报完全相同的堆栈跟踪。以下 GitHub 问题帮助我理解了这个问题:
https://github.com/dotnet/wcf/issues/2349
对我来说,SoapCore 引用的是System.ServiceModel.Http 4.4.0,它依赖于System.Private.ServiceModel 4.4.0. 如果您下载 NuGet 包并打开 nupkg 文件System.Private.ServiceModel 4.4.0并观察“runtimes”子文件夹,您将看到它仅列出“win7”和“unix”。Azure 似乎在寻找运行时“win-x86”或“win-x64”,上面的 GitHub 问题解释了“win7”RID 不包含这些 RID 的原因。看到问题已关闭,我下载了System.Private.ServiceModel 4.5.0检查“运行时”子文件夹,看到它已从“win7”更改为“win”,就像 GitHub 问题中提到的那样。
为了解决我的问题,我直接为System.ServiceModel.Http 4.5.0我的项目添加了一个依赖项。这包括更新的依赖项System.Private.ServiceModel 4.5.0,Azure 会正确识别“win”运行时,以确保在我的应用程序发布时包含必要的 DLL。
| 归档时间: |
|
| 查看次数: |
3184 次 |
| 最近记录: |