This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Can't find IISROOTFOLDER on Windows Server 2008 64bit
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 17, 2010
12:07 AM
Can't find IISROOTFOLDER on Windows Server 2008 64bit
It's a web project which deploy website to IIS root. it works fine on Windows Server 2003, but while installing it on Windows Server 2008 (64bit), it always popup the error at the very beginning.
"Error 1606. Could not access network location {IISROOTFOLDER}".
Please help me on this.
"Error 1606. Could not access network location {IISROOTFOLDER}".
Please help me on this.
(5) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 17, 2010
07:39 AM
Is there anybody meet such a problem before???
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 17, 2010
12:41 PM
I've seen this before.
The problem that I saw was that the IISRootFolder translates to
%SystemDrive%\inetpub\wwwroot\
Depending on how you use the path, the %SystemDrive% isn't always translated to the actual system drive value. I found I had to replace that directly in that string before I could use it as a target directory. The following inelegant function would fix the path so it could be used.
function STRING GetIISRootDirectory()
STRING szDefaultPath;
begin
szDefaultPath = IISROOTFOLDER; //this sets to wwwroot
StrReplace(szDefaultPath, "%SystemDrive%", WINDISK, 0);
StrReplace(szDefaultPath, "%SYSTEMDRIVE%", WINDISK, 0);
return szDefaultPath;
end;
Hope this helps.
The problem that I saw was that the IISRootFolder translates to
%SystemDrive%\inetpub\wwwroot\
Depending on how you use the path, the %SystemDrive% isn't always translated to the actual system drive value. I found I had to replace that directly in that string before I could use it as a target directory. The following inelegant function would fix the path so it could be used.
function STRING GetIISRootDirectory()
STRING szDefaultPath;
begin
szDefaultPath = IISROOTFOLDER; //this sets to wwwroot
StrReplace(szDefaultPath, "%SystemDrive%", WINDISK, 0);
StrReplace(szDefaultPath, "%SYSTEMDRIVE%", WINDISK, 0);
return szDefaultPath;
end;
Hope this helps.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 17, 2010
01:31 PM
Hi DDevine,
thanks for your help, you are right, the installer is check the value of HKLM\SOFTWARE\Wow6432Node\Microsoft\InetStp\PathWWWRoot in registery on 64bit OS.
the value of this entry is %SystemDrive%\inetpub\wwwroot\ . but my IIS Root Folder is under D driver. so it raise the error.
thanks for your help, you are right, the installer is check the value of HKLM\SOFTWARE\Wow6432Node\Microsoft\InetStp\PathWWWRoot in registery on 64bit OS.
the value of this entry is %SystemDrive%\inetpub\wwwroot\ . but my IIS Root Folder is under D driver. so it raise the error.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 17, 2010
01:45 PM
I think InstallShield should check this HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\PathWWWRoot not
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\InetStp\PathWWWRoot,
How can I make IISROOTFOLDER to read the value from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\PathWWWRoot at very beginning?
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\InetStp\PathWWWRoot,
How can I make IISROOTFOLDER to read the value from HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\PathWWWRoot at very beginning?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 18, 2010
08:17 AM
On my 64 bit system, both those registry settings have the same value (%SystemDrive%\inetpub\wwwroot). The path to the IIS root folder is the same for 32 or 64 bit. So changing the registry that InstallShield reads from won't resolve your issue.
The issue is that %SystemRoot% isn't translated into the actual value of your system drive, which in your case is D:. So your install is currently trying to write to the literal value of "%SystemDrive%\inetpub\wwwroot\" rather than "D:\inetpub\wwwroot".
You need to convert the value you get from the registry to use the proper drive letter instead of the literal %SystemDrive%. The WINDISK system variable will return the value of your system drive (D:). If you replace the %SystemDrive% with this value it will give you the path you need.
To be able to target that for a component you would need to expose a Public Property (if you are using MSI) or a custom variable using FeatureSetTarget (for installscript) where this converted path string is stored.
The issue is that %SystemRoot% isn't translated into the actual value of your system drive, which in your case is D:. So your install is currently trying to write to the literal value of "%SystemDrive%\inetpub\wwwroot\" rather than "D:\inetpub\wwwroot".
You need to convert the value you get from the registry to use the proper drive letter instead of the literal %SystemDrive%. The WINDISK system variable will return the value of your system drive (D:). If you replace the %SystemDrive% with this value it will give you the path you need.
To be able to target that for a component you would need to expose a Public Property (if you are using MSI) or a custom variable using FeatureSetTarget (for installscript) where this converted path string is stored.