Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
PE>>>Имея COМ можно написать тыщи скриптов консольных. Поставь для интереса IIS и посмотри, как там сделано.
V>>Ещё раз напоминаю, что я это уже делал (именно для IIS)..
V>>на материяльной основе..
V>>И знаю, какая это жопа..
PE>Расскажи, как ты это делал ?
Писал DCOM объект на C++
для запуска удалённо из ColdFusion.. (система хостинга)
вот реальный фрагмент:
HRESULT CInternalIISObj::CreateSiteRedirect
(BSTR TargetComputer, BSTR IIsService, BSTR SiteName, BSTR HostName)
{
HRESULT hr; // код возврата
_bstr_t iiss(IIsService, false);
int isWWW = (iiss==_bstr_t("www"));
if(!isWWW && !(iiss==_bstr_t("ftp")))
return ERROR_INVALID_FUNCTION;
_bstr_t objURL = _bstr_t("IIS://") +TargetComputer+ (isWWW ? "/W3SVC" : "/MSFTPSVC");
CComPtr<IADsContainer> pADsContainer;
hr = ADsGetObject(objURL, IID_IADsContainer, (void**)&pADsContainer);
if(hr!=S_OK) return hr;
long index;
hr = FindSite(pADsContainer, SiteName, &index);
if(hr!=S_OK) return hr;
unsigned short buf[40]; ;
CComPtr<IDispatch> pDispatch;
hr = ADsGetObject(objURL + "/" + _ltow(index, buf, 10),
IID_IADs, (void**)&pDispatch);
if(hr!=S_OK) return hr;
CComPtr<IADsContainer> pADsContainer1;
hr = pDispatch->QueryInterface(IID_IADsContainer,(void**)&pADsContainer1);
if(hr!=S_OK) return hr;
CComPtr<IDispatch> pDispatch1;
hr = pADsContainer1->GetObject(isWWW ? L"IIsWebVirtualDir" : L"IIsFTPVirtualDir",
L"Root",(IDispatch**)&pDispatch1);
if(hr!=S_OK) return hr;
if(strcmp(_bstr_t(HostName),"*")!=0)
PutProp(pDispatch1,L"HttpRedirect",HostName,hr);
else{
VARIANT var;
VariantClear(&var);
V_VT(&var)=VT_NULL;
PutPropEx(pDispatch1,ADS_PROPERTY_CLEAR,L"HttpRedirect",var,hr);
}
return S_OK;
}
PE>Верю. Только мне пришлось настраивать свои тулы просто что запускались, прописывать фолдеры, устанавливать права юзерам , назначать порты. Все это я сделал в IIS мышой.
PE>Во всех демонах, что я настраивал, единого интерфейса нет, который покрывает ВСЕ базовые потребности.
ага.. может это ты не до конца разобрался..
всё что ты перечислил (кроме может быть портов)
натсраивается через httpd.conf
да и порты вообще непонятно зачем ты пользователям раздавал..
чем 80-й то порт не устраивает?
А с правами пользователей под win вообще полная жопа..
Тут тебе вообще не стоило заикаться..