2

以下は、既存の証明書の SSL バインディングを IIS サーバーの「既定の Web サイト」に追加しようとしている C# のコードです。しかし、私は得続けます

System.Runtime.InteropServices.COMException (0x8000500C) ステートメント "website.Properties["SSLCertHash"].Add(x509.GetCertHash());" で。

その理由を知っていますか?

string defaultWebsite = "Default Web Site";

foreach (DirectoryEntry website in sites)
{
    if (website.Properties["ServerComment"] != null)
    {
        if (website.Properties["ServerComment"].Value != null)
        {
            SrmLogManager.logMessage(SrmLogMgrLevel.SRM_LOGMGR_LEVEL_INFO, funcName + "Website found" + website.Properties["ServerComment"].Value.ToString());

                PropertyCollection pc = website.Properties;
                IDictionaryEnumerator ide = pc.GetEnumerator();
                ide.Reset();
                while (ide.MoveNext())
                {
                    PropertyValueCollection pvc = ide.Entry.Value as PropertyValueCollection;

                    // Dump out the website properties into the log, can be removed in future
                    SrmLogManager.logMessage(SrmLogMgrLevel.SRM_LOGMGR_LEVEL_INFO,"Name: "+ ide.Entry.Key.ToString());
                    SrmLogManager.logMessage(SrmLogMgrLevel.SRM_LOGMGR_LEVEL_INFO,"Value: " + pvc.Value);
                }
                // Add the Secure (https) binding to port 443 at hostname = localhost
                website.Properties["SecureBindings"].Clear();
                website.Properties["SecureBindings"].Add(":443:localhost");

                // Bind the AppAssure certificate 
                website.Properties["SSLCertHash"].Clear();
                website.Properties["SSLCertHash"].Add(x509.GetCertHash());
                website.CommitChanges();

            if (string.Compare(website.Properties["ServerComment"].Value.ToString(), defaultWebsite) == 0)
            {
                SrmLogManager.logMessage(SrmLogMgrLevel.SRM_LOGMGR_LEVEL_INFO, funcName + "Default Website is : " + website.Properties["ServerComment"].Value.ToString());

            }
        }
    }
}

これが私が得ている例外です:

AA 証明書のバインド中に例外が発生しました System.Runtime.InteropServices.COMException (0x8000500C): HRESULT からの例外: System.DirectoryServices.Interop.UnsafeNativeMethods.IAds.PutEx (Int32 lnControlCode, String bstrName, Object vProp) で System.DirectoryServices.PropertyValueCollection で 0x8000500C .OnInsertComplete(Int32 インデックス、オブジェクト値) System.Collections.CollectionBase.System.Collections.IList.Add(オブジェクト値) で System.DirectoryServices.PropertyValueCollection.Add(オブジェクト値) AAA.Web.Controllers.Global.importAppAssureSoftwareCert( ) c:\Users\Administrator\Documents\AppAssureAppliance2.0\SRMWebClient\AAA.Web\Controllers\Global.cs:80行目

4

1 に答える 1