A non-tech's guide to installing (IIS hosted) PortWeb
Version 4 of Portfolio had separate serial codes for the client, server. This changed as of Version 5.0. If you are using PortWeb that came with your Portfolio 5 (Network) or v6.x then you don't need a serial code or any additional licensing as it comes free with the product.
However, you should note the following, especially if your PortWeb installation is hosted externally;
- Ensure that your (ISP's) server is running Microsoft IIS. PortWeb won't work with Apache or any Unix web servers - as yet.
- Ensure that the Scripts folder has 'Scripts and Executables' under the 'Execute' permissions. In a hosted situation this is something that your ISP may have to do at their end.
- If the ISP is running NT 4 or Windows 2000 Server they need to ensure that the IUSR_computername user has been given full access rights to the Scripts folder's Security properties. This is definitely something that can only be done on the ISP's end. The 'Modify' permission is needed - not just 'Write'.
- Portfolio, (Portfolio Server) and PortWeb all have to be exactly the same version in order to successfully enable Portfolio Catalogues to be served. To make this clearer, if you were running version 5.0.1 of Portfolio client and had PortWeb version 5.0 installed, you will not be able to enable the catalogue on PortWeb Admin.
- The relative location of the PortWeb.dll and the Catalogues & images is immaterial as long as the permissions are set up to allow PortWeb to 'see' (i.e. access) the target files. Put in tech terms, the IUSR_computername IIS account needs to have NTFS read permissions for any files it wishes to access.
- PortWeb does not require an installer. The DLL is a CGI app so you do not need to register it as you might an ActiveX.DLL, it just needs to have IIS execute permissions for the IUSR_computername account. So you can send the PortWeb.DLL to the ISP or their staff can install the files locally. They only need to copy over the PortWeb.dll file into the Scripts folder. If they've also mistakenly copied over anything like PortWeb.ini, PortWeb.adm and PortWeb.wdb from another installation it's best that they remove these files and restart the web server (the World Wide Web Publishing service, that is - not just the Web site).
- Is there a specific location where PortWeb.dll should be put? The DLL can be put in a Virtual directory (i.e. just about anywhere on the server). It all comes down to how the DLL is called from the client's web browser, so the appropriate execute permissions and directory structure need to be accounted for. The NTFS permissions are the most important part.
- Can you install multiple copies of PortWeb.dll on the same machine (since many web servers run multiple websites)? Yes, you can have multiple copies of the PortWeb.dll but the first PortWeb.ini file read loads global values that are used by any subsequent PortWeb.dll CGI instance. This is a design flaw and not fixed to date (v5.01).
- The Catalogue(s) should be set up for use via the PortWeb adminshow interface but alternatively you can directly edit the PortWeb.ini file located in the same directory as the PortWeb.dll but also note item 8 above. To 'unserve' a Catalogue via editing either delete the Catalogue's entry or 'rem' it out by placing a semi-colon a the start of the line. By commenting out a line, it will show up in the adminshow page listing but without a tick in the 'enabled' box. After such editing you should restart the web server (the World Wide Web Publishing service, that is - not just the Web site).
- Is read-only access to Catalogue & assets sufficient? Read-only permissions for the appropriate user account (IUSR_computername). This is a much longer discussion and is where 95% of the problems are likely to occur. Have the administrator open the permissions to everyone and then incrementally tighten security until they break it. That's the best way to figure out what is causing the problem. The shopping cart feature (Collections) uses server side cookies in certain scenarios and needs special write access to the PortWeb.adm and PortWeb.wdb files (located in the PortWeb.dll directory). A situation can arises where restrictions are applied too heavily to the Windows\system32\inetsrv\ folder causing the cookies to break. Usually, these are IIS related problems more so than PortWeb.dll problems. Note that the PortWeb.dll is actually pretty simple and really doesn't do anything too abnormal to a system's configuration.
- You might also consider that the (human) Portfolio Admin and Server Admin should discuss the additional permissions needed to allow the former to administer source files, Catalogues etc. It is important to note that accessing (a site's) adminshow HTML page requires admin permissions for the Portfolio Admin, or alternatively a specially created (admin) account for the same person. This factor is extremely pertinent if the PortWeb facility is being hosted remotely - and/or by a third party; the accesses and permissions need to allow the site's 'owner' to use the adminshow page functions without real-time tech assistance or intervention.
- Some recommendations for permissions. These permissions "should" get the basic system up and running but systems your mileage may vary and there are no guarantees:
- PortWeb.dll - Execute (everyone)
- PortWeb.ini - Read (everyone), write & modify (admins)
- PortWeb.wdb - Read, write, modify (everyone)
- PortWeb.adm - Read (everyone)
PortWeb on Server 2003
[Archived from : Extensis KB#1095536 - How to make Portweb work with IIS 6.0 (Windows Server 2003) ]
With Microsoft's new focus on security the latest version of their Internet Information Server (IIS 6.0) which can be installed on Windows 2000 Servers, Windows XP Professional, and comes with Windows Server 2003 will not run Portweb 'out-of-the-box'.
IIS 6.0 installs as a static content only web server and requires that a system administrator specifically enable any dynamic content (CGI, ASP, SSI, ...). Portweb 6.0 is a 'CGI' application so it needs to be enabled before it will work.
IIS 6.0 also introduces a new term for dynamic content applications: 'Web Service Extension'
A new node named Web Service Extensions has been added to the Internet Information Services Manager (ISM) in Internet Information Services (IIS) 6.0. Web service extensions are programs that extend the basic IIS functionality of serving static content. Examples of Web service extensions are:
Active Server Pages (ASP)
FrontPage Server Extensions
Server-side includes (SSI)
Internet Database Connector
Web Distributed Authoring and Versioning (WebDAV)
Common Gateway Interface (CGI)
Internet Server API (ISAPI)
The official description and additional information is found at this URL: http://support.microsoft.com/default.aspx?scid=kb;en-us;332060
The following three Microsoft Knowledge Base Articles cover the details of configuring a CGI application with IIS 6.0:
HOW TO: Add and Remove Web Service Extension Files in IIS 6.0: http://support.microsoft.com/default.aspx?scid=kb;EN-US;328419
HOW TO: Enable and Disable ISAPI Extensions and CGI Applications in IIS 6.0: http://support.microsoft.com/default.aspx?scid=kb;en-us;328360
HOW TO: List Web Server Extensions and Extension Files in IIS 6.0: http://support.microsoft.com/default.aspx?scid=kb;EN-US;328505
You may also want to refer to the Microsoft IIS 6.0 Online Documentation: www.microsoft.com/technet/prodtechnol/windowsserver2003/proddocs/standard/iiswelcome.asp
For those of you who want to skip the details here are the command line commands that are required to Add Portweb and Enable it under IIS 6.0 on a local machine:
NOTE: You must be logged on as a machine Administrator or use the 'runas.exe' command to get the following commands to work.
NOTE: Change the path to the portweb.dll to reflect the correct location of the file.
C:\>%windir%\system32\cscript.exe iisext.vbs /AddFile c:\inetpub\wwwroot\scripts\Portweb.dll 1 Portweb 1 Portweb
You should get a message similar to the following:
Connecting to server ...Done.
Adding extension file complete.
You then need to run the following command to enable Portweb:
C:\>%windir%\system32\cscript.exe iisext.vbs /EnFile c:\inetpub\wwwroot\scripts\Portweb.dll
You should get a message similar to the following:
Connecting to server ...Done.
Enabling extension file complete.
Portweb should now be working. If you encountered a problem you should refer the Microsoft Knowledge Base articles above.
You may also want to refer to the Microsoft IIS 6.0 Online Documentation:
File and Web Server Permissions are also more restrictive under Windows Server 2003. Special attention may also be required to enable Portweb's functionality depending on the system's configuration. File System and Web Server Permission Information for IIS 6.0 is also covered in the IIS 6.0 Online Documentation.
Question: A non-tech's guide to installing (IIS hosted) PortWeb [FAQ00145.htm]
Last Update:- 02 June 2006