asp.net 核心 1.1 WCF 客户端导致整个应用程序崩溃

asp.net core 1.1 WCF client causes whole app to crash

我有一个 PCL,其中包含一些 WCF 客户端。下面是 project.json:

 "dependencies": {
    "NETStandard.Library": "1.6.1",
    "Newtonsoft.Json": "9.0.1",
    "System.ComponentModel.Annotations": "4.3.0",
    "System.Net.Http": "4.3.0",
    "System.Reflection": "4.3.0",
    "System.ServiceModel.NetTcp": "4.3.0",
    "System.ServiceModel.Primitives": "4.3.0"
},
  "frameworks": {
      "netstandard1.4": {}
}

asp.net 核心 1.0.1 一切正常,但是在升级我的 asp.net 核心项目中的所有内容后,我的 wcf 客户端发出的所有调用都失败并出现一个可怕的错误:

An unhandled exception of type 'System.ExecutionEngineException' occurred in System.Private.CoreLib.ni.dll

我的 asp.net 核心应用程序的 project.json 是这样的:

{
 "dependencies": {
    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Razor.Tools": {
         "version": "1.1.0-preview4-final",
          "type": "build"
    },
    "Microsoft.AspNetCore.Routing": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.AspNetCore.StaticFiles": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0"
},

"tools": {
    "BundlerMinifier.Core": "2.2.306",
    "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final"
},

"frameworks": {
   "netcoreapp1.1": {
    "dependencies": {
      "Microsoft.NETCore.App": {
        "type": "platform",
        "version": "1.1.0"
    },
    "MySharedProject": {
      "target": "project"
    }
  },
  "imports": [
    "netstandard"
  ]
}
},
}

如果我保持一切不变,只需将 Microsoft.NETCore.App 上的版本更改为 1.0.1,一切正常。我在 VS 输出 window 中看到的最后一件事是调用加载 System.Xml.XmlDocument 包。然后它就崩溃了。

这是 .NET Core 1.1 的已知问题:https://github.com/dotnet/core/blob/master/release-notes/1.1/1.1-known-issues.md#systemexecutionengineexception-in-systemsecuritycryptographyx509cerificatesdll-on-windows

Workaround: Set environment variable COMPlus_ReadyToRunExcludeList=System.Security.Cryptography.X509Certificates