以下は、既存の証明書の 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行目