ICorRuntimeHost::Start() returning "Access is denied" -
03-22-2007
, 05:12 PM
We have an unmanaged C++ app (VS 6.0) in which we host a CLR. It works on 99%
of installations but a customer is using it in a Citrix server environment,
and when we make the call to ICorRuntimeHost::Start(), it returns an HRESULT
= E_ACCESSDENIED. I don't know much about Citrix environments except that it
seems to work for other customers. Anyone know what I should look into to
diagnose this issue?
For completeness, here are the series of calls we are making to start up the
CLR (error checking code omitted for brevity):
// Attempt to load up the appropriate libraries. If this fails, we'll panic.
if ( s_hMSCOREEDLL == NULL )
{
s_hMSCOREEDLL = LoadLibrary(_T("mscoree.dll"));
}
CORBINDTORUNTIMEEX pfn = (CORBINDTORUNTIMEEX)GetProcAddress(
s_hMSCOREEDLL, _T("CorBindToRuntimeEx"));
if ( pfn == NULL )
{
...
}
//Retrieve a pointer to the ICorRuntimeHost interface
HRESULT hr = (pfn) ( L"v1.1.4322",
L"wks", //Request a WorkStation build of the CLR
STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN | STARTUP_CONCURRENT_GC,
CLSID_CorRuntimeHost,
IID_ICorRuntimeHost,
(void**)&s_spRuntimeHost );
if (FAILED(hr))
{
...
}
//Start the CLR
hr = s_spRuntimeHost->Start();
if (FAILED(hr))
{
... // the above call is returning E_ACCESSDENIED
} |