指定的CGI应用程序遇到错误,服务器终止了该进程。天蓝

时间:2017-06-19 08:43:26

标签: c# azure asp.net-core-mvc

我在我的asp.net核心api中添加了一张万事达卡sdk。对api的调用在我的本地机器上运行正常。但是当在azure上部署时会抛出上述错误。

我已经尝试了一切。

我已将调试程序附加到实际站点。我打电话时会抛出错误 SetAuthentication

public MatchType RequestCall(string consumerKey, string keyAlias, string keyPassword)
    {
        byte[] certificateBytes = GetCertificateStream();
        ApiConfig.SetAuthentication(new OAuthAuthentication(consumerKey, certificateBytes, keyAlias, keyPassword));
        ApiConfig.SetSandbox(true);

        RequestMap map = GenerateRequestMap();
        TerminationInquiryRequest response = TerminationInquiryRequest.Create(map);
        return GetMatchType(response);

    }



 public byte[] GetCertificateStream()
        {
            var resourceName = typeof(TerminationMatchInquiry).GetTypeInfo().Assembly.GetManifestResourceNames()[0];//Get certificate resource name
            using (Stream CertStream = typeof(TerminationMatchInquiry).GetTypeInfo().Assembly.GetManifestResourceStream(resourceName))
            {
                byte[] RawBytes = new byte[CertStream.Length];
                for (int Index = 0; Index < CertStream.Length; Index++)
                {
                    RawBytes[Index] = (byte)CertStream.ReadByte();
                }
                return RawBytes.ToArray();
            }
        }

1 个答案:

答案 0 :(得分:1)

在查看了C#的MasterCard SDK来源后,我发现,当我们调用OAuthAuthentication时,它将创建一个X509Certificate2的实例。该错误是由此行引起的。

cert = new X509Certificate2(rawCertificateData, password, keyStoreFlags | X509KeyStorageFlags.Exportable);

在Azure WebApp中,如果我们尝试使用证书,则需要从Azure门户上载证书。在Azure WebApp应用程序中添加带有指纹值的WEBSITE_LOAD_CERTIFICATES。更多详细信息请参阅blog