Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Sets metadata values in the IIS 7 configuration system.
Syntax
HRESULT SetMetadata(
[in,
string] BSTR bstrMetadataType,
[in] VARIANT value
);
Parameters
bstrMetadataType
A BSTR
that contains the name of the metadata being set.
value
A VARIANT
that contains the new metadata.
Return Value
An HRESULT
. Possible values include, but are not limited to, those in the following table.
Value | Description |
---|---|
S_OK | Indicates that the operation was successful. |
ERROR_NOT_SUPPORTED | Indicates that the metadata being set is not supported. |
Example
The following code example sets a configSource
attribute for the system.applicationHost/sites
section by using the IAppHostAdminManager::SetMetadata
method.
#pragma once
#include <stdio.h>
#include <string.h>
#include <ahadmin.h>
int main()
{
IAppHostWritableAdminManager * pWMgr = NULL;
IAppHostElement * pElement = NULL;
HRESULT hr = S_OK;
BSTR bstrConfigCommitPath = SysAllocString(L"MACHINE/WEBROOT/APPHOST");
BSTR bstrSectionName = SysAllocString(L"system.applicationHost/sites");
BSTR bstrConfigSource = SysAllocString(L"sites.config");
BSTR bstrConfigSourceAttr = SysAllocString(L"configSource");
VARIANT vtConfigSource;
vtConfigSource.vt = VT_BSTR;
vtConfigSource.bstrVal = bstrConfigSource;
// Initialize
hr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
if ( FAILED( hr ) )
{
printf_s( "ERROR: Unable to initialize\n" );
goto exit;
}
// Create
hr = CoCreateInstance( __uuidof( AppHostWritableAdminManager ), NULL,
CLSCTX_INPROC_SERVER,
__uuidof( IAppHostWritableAdminManager ), (void**) &pWMgr );
if( FAILED( hr ) )
{
printf_s( "ERROR: Unable to create an IAppHostWritableAdminManager instance\n" );
goto exit;
}
// Set the commit path
hr = pWMgr->put_CommitPath( bstrConfigCommitPath );
if ( FAILED( hr ) )
{
printf_s( "ERROR: Unable to set the configuration path" );
goto exit;
}
// Get the admin section
hr = pWMgr->GetAdminSection( bstrSectionName, bstrConfigCommitPath, &pElement );
if ( FAILED( hr ) || ( &pElement == NULL ) )
{
if ( E_ACCESSDENIED == hr )
{
printf_s( "ERROR: Access to configuration denied.\n" );
printf_s( " Run sample as an administrator.\n" );
}
else
{
printf_s( "ERROR: Unable to get asp configuration section.\n" );
}
goto exit;
}
// Set the metadata
hr = pElement->SetMetadata( bstrConfigSourceAttr, vtConfigSource );
if ( FAILED( hr ) )
{
printf_s( "ERROR: Unable to set metadata\n" );
goto exit;
}
pWMgr->CommitChanges();
exit:
// Exiting / Unwinding
if ( pElement != NULL )
{
pElement -> Release ();
pElement = NULL;
}
if ( pWMgr != NULL )
{
pWMgr->Release();
pWMgr = NULL;
}
SysFreeString( bstrConfigCommitPath );
SysFreeString( bstrSectionName );
SysFreeString( bstrConfigSource );
SysFreeString( bstrConfigSourceAttr );
// Uninitialize
CoUninitialize();
return 0;
};
Requirements
Type | Description |
---|---|
Client | - IIS 7.0 on Windows Vista - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
Server | - IIS 7.0 on Windows Server 2008 - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 |
Product | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - IIS Express 7.5, IIS Express 8.0, IIS Express 10.0 |
Header | Ahadmin.h |