Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Obtient une interface IAppHostConfigManager qui fournit l’accès aux fichiers physiques dans le système de configuration IIS 7.
Syntaxe
HRESULT get_ConfigManager(
[out,
retval] IAppHostConfigManager** ppConfigManager
);
Paramètres
ppConfigManager
Pointeur vers un pointeur pour une IAppHostConfigManager interface.
Valeur renvoyée
Élément HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.
| Valeur | Description |
|---|---|
| S_OK | Indique que l’opération a réussi. |
| HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER) | Indique la ppConfigManager valeur NULL. |
| HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY) | Indique que la méthode ne peut pas allouer suffisamment de mémoire pour la valeur de retour. |
Exemple
L’exemple de code suivant illustre le rôle de l’interface dans l’accès IAppHostConfigManager au système de configuration.
#pragma once
#include <stdio.h>
#include <string.h>
#include <ahadmin.h>
int main()
{
HRESULT hr = S_OK;
IAppHostWritableAdminManager * pWMgr = NULL;
IAppHostConfigManager * pCfgMgr = NULL;
IAppHostConfigFile * pCfgFile = NULL;
IAppHostSectionGroup * pRtSctnGrp = NULL;
IAppHostSectionGroup * pSctnGrp = NULL;
IAppHostSectionDefinitionCollection * pSctnDefCol = NULL;
IAppHostSectionDefinition * pSctnDef = NULL;
BSTR bstrConfigCommitPath = SysAllocString(L"MACHINE/WEBROOT/APPHOST");
BSTR bstrSctnGrpName = SysAllocString(L"mySectionGroup");
BSTR bstrSctnName = SysAllocString(L"myNewSection");
BSTR bstrDeny = SysAllocString(L"Deny");
BSTR bstrAppHostOnly = SysAllocString(L"appHostOnly");
// 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\n" );
goto exit;
}
pWMgr -> put_CommitPath ( bstrConfigCommitPath );
// Get an IAppHostConfigManager
hr = pWMgr -> get_ConfigManager ( &pCfgMgr );
if ( FAILED( hr ) || ( &pCfgMgr == NULL ) )
{
printf_s ( "ERROR: Unable to get a config manager.\n" );
goto exit;
}
// Get an IAppHostConfigFile
hr = pCfgMgr -> GetConfigFile ( bstrConfigCommitPath, &pCfgFile );
if ( FAILED ( hr ) || ( &pCfgFile == 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 config file.\n" );
}
goto exit;
}
// Get the root section group
hr = pCfgFile -> get_RootSectionGroup ( &pRtSctnGrp );
if ( FAILED ( hr ) || ( &pRtSctnGrp == NULL ) )
{
printf_s ( "ERROR: Unable to access root section group\n" );
goto exit;
}
// Add a new section group
hr = pRtSctnGrp -> AddSectionGroup ( bstrSctnGrpName, &pSctnGrp );
if ( FAILED ( hr ) || ( &pSctnGrp == NULL ) )
{
printf_s ( "ERROR: Unable to add new section group\n" );
goto exit;
}
// Get the section collection
hr = pSctnGrp -> get_Sections ( &pSctnDefCol );
if ( FAILED ( hr ) || ( &pSctnDefCol == NULL ) )
{
printf_s ( "ERROR: Unable to access section collection\n" );
goto exit;
}
// Add the new section
hr = pSctnDefCol -> AddSection ( bstrSctnName, &pSctnDef );
if ( FAILED ( hr ) || ( &pSctnDef == NULL ) )
{
printf_s ( "ERROR: Unable to add new section\n" );
goto exit;
}
// Set the section attributes
pSctnDef -> put_OverrideModeDefault ( bstrDeny );
pSctnDef -> put_AllowDefinition ( bstrAppHostOnly );
// Commit the changes to the configuration system
pWMgr->CommitChanges ( );
exit:
// Exiting / Unwinding
if ( pRtSctnGrp != NULL )
{
pRtSctnGrp->Release();
pRtSctnGrp = NULL;
}
if ( pSctnGrp != NULL )
{
pSctnGrp->Release();
pSctnGrp = NULL;
}
if ( pSctnDefCol != NULL )
{
pSctnDefCol->Release();
pSctnDefCol = NULL;
}
if ( pSctnDef != NULL )
{
pSctnDef->Release();
pSctnDef = NULL;
}
if ( pCfgFile != NULL )
{
pCfgFile->Release();
pCfgFile = NULL;
}
if ( pCfgMgr != NULL )
{
pCfgMgr->Release();
pCfgMgr = NULL;
}
if ( pWMgr != NULL )
{
pWMgr->Release();
pWMgr = NULL;
}
SysFreeString( bstrConfigCommitPath );
SysFreeString( bstrSctnGrpName );
SysFreeString( bstrSctnName );
SysFreeString( bstrDeny );
SysFreeString( bstrAppHostOnly );
// Uninitialize
CoUninitialize();
return 0;
};
Spécifications
| Type | Description |
|---|---|
| Client | - IIS 7.0 sur Windows Vista - IIS 7.5 sur Windows 7 - IIS 8.0 sur Windows 8 - IIS 10.0 sur Windows 10 |
| Serveur | - IIS 7.0 sur Windows Server 2008 - IIS 7.5 sur Windows Server 2008 R2 - IIS 8.0 sur Windows Server 2012 - IIS 8.5 sur Windows Server 2012 R2 - IIS 10.0 sur Windows Server 2016 |
| Produit | - 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 |
| En-tête | Ahadmin.h |