Home Server
New Blog Posts: Merging Reports - Part 1 and Part 2

WebTier Reporting problem

edited September 2003 in Server
I've used the ISAPI demo on a windows 2000 server and have followed the
steps in the doc file to configure the IIS.

When on that machine and using IE with
http:\\localhost\rbWebPub\Report.dll, I get two panes in IE and both say
they can not find the page requested. The cache dir has a folder with
files that show the report.dll communicated with the report server to
get the two directories with reports. If I use the computer name or IP
address, I get nothing. The rbWebPub and sub directories have privs set
correctly. I'm running out of things to check, so I need some help on
what to check for next.

Oh, I put the rbserver bpl and all rbreport bpl's in the system32 dir.
A client from my machine can get to the reports on the server. I've
stopped and started the IIS every time there is a new report.dll. The
log shows that I've request the correct dll and has this entry.
2003-09-05 17:12:49 172.16.192.25 - 172.16.192.25 80 GET
/rbwebpub/report.dll - 500
Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0)

Thanks,
Dave

Comments

  • edited September 2003

    Its either an IIS configuration issue (see below) or the WebTier
    properties for the CachDirectory, WebCachePath, and WebModuleURI are
    configured incorrectly.

    Perform a view source on the web page and look at the URL's that have
    been generated. If these look correct then it is an IIS account issue.




    ----------------------------------------
    RB WebTier and IIS User Accounts
    ----------------------------------------

    Question: I am trying to configure and test the RB WebTier using IIS.
    When I try to test the web tier via my web browser an Internal Server
    500 Error page is displayed.

    This is generic error page returned by IIS.

    One cause of this error is that the WebTier application does not have
    sufficient user access rights.


    Solution:

    1. Unload the WebTier application.

    Use IIS to access the properties dialog for the rbWebPub virtual
    directory. Press the UnLoad button to unload the ISAPI dll.

    2. Delete rbWebPub subdirectories

    Use Windows Explorer to delete all subdirectories inside the rbWebPub
    directory. If you are using different WebTier CacheDirectory or WebTier
    LogSettings, then delete those directories also.


    3. Configure IIS User Accounts

    There are two user accounts created by IIS: IUSR_MachineName and
    IWAM_MachineName. (MachineName is replaced by the name of your
    computer).

    a. Use Windows Explorer to access the properties dialog for the rbWebPub
    directory.

    b. Check whether the IUSR_MachineName and IWAM_MachineName accounts
    appear in the list of users. If not then add them.

    c. The IUSR_MachineName account is the Internet Guest Account. This
    account requires Read, Execute, and Write access to rbWebPub.

    d. The IWAM_MachineName account is a user account that IIS uses to run
    web applications such as the web tier. This account requires full
    control of the rbWebPub directory. The web tier must be able to read,
    write, and create new files and sub directories for the CacheDirectory
    and the Log. Therefore if you configure the WebTier to use directories
    that are not subdirectories of rbWebPub, you will need to configure
    those directories as well.

    e. reboot the machine.




    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited September 2003
    The Reportt.dll works on my machine with the rbserver, but since I've
    installed Delphi and RBServer, is it possible there is a bpl or dll that
    is not on the machine I'm deploying the Report.dll? When I try to
    access the page from a different machine the error is:
    "The specified module could not be found."
    The web pages do look different, on the my machine the complete
    directory structure is present, not on the other machine.

    It would be hard to beleve it is security, since the rbWebPub has given
    everyone full access, even the two accounts mentioned and ANONYMOUS
    LOGON. It may be the security, but I need something more to go to the
    network manager and point to where less security is needed. Right now
    he does not believe that is the problem, it's the report.dll that has
    the problem. Since the cache directories are created with the files
    needed, I would have to agree. Are you saying that the Report.dll has
    privs to create the pages, but ISS does not have privs to read them?
    Even though the split panes is read, just not the treeviews. Is it
    possible that I'm missing something else, some bpl or windows dll that
    is used in the display?


    The VirtualDir on both machines are the same. Also the options to use
    an ini file and create logfiles is turned on, but neither is created on
    either machine.

    Thanks,
    Dave


  • edited September 2003
    One more bit of info.
    If I view the ListView.htm and click on the icon to expand the first dir
    I get an error:
    A Runtime Error has occured.
    Do you wish to Debug?

    Line 106
    Error: 'parent.frmTreeView' is not an object


    Maybe this can help determine where my problem is occuring.

    Dave


  • edited September 2003


    That is a javascript error. The ListView.htm is designed to be viewed
    inside a parent frame. The Parent is going to be nil if ListView.htm is
    viewed as a stand alone page.



    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited September 2003

    The WebTier.ini file should be created when you set
    WebTier.IniSettings.Enabled to true and subsequently save the Delphi
    project. I think there was an issue with this feature in RB 7.0, but it
    definitely works in RB 7.03.

    When you deploy, you will need to deploy the WebTier.ini file to the
    directory designated by WebTier.IniSettings.FileName (The application
    directory is the default location).

    The WebTier application is an ISAPI.dll, it does not require any other
    modules. The report server application may be a different story. It
    likely requires database connectivity support, for example the BDE. You
    can either compile the report server application as a stand alone .exe
    or compile with packages. In the case of the latter, you would need to
    deploy runtime packages.

    You asked: "Are you saying that the Report.dll has
    privs to create the pages, but ISS does not have privs to read them?".
    It is possible for that to be an issue. The ISAPI dll is runing under
    IWAM_MachineName and requires full access. The IUSR_MachineName needs
    read access.

    The split pane html page is the parent frame - this is the content
    returned by the WebTier (i.e. the ISAPI.dll). If you perform a view
    source from your web browser you will see url's to the treeview and
    listview htm pages. These request go straight thru IIS, they do not go
    thru the ISAPI.dll.

    Likely causes:

    1. The URL's generated by the WebTier are incorrect, due to incorrect
    configuration of the WebTier properties.

    2. There is a security issue, in which IIS is not permitting access to
    those pages. Try typing in the URL for the treeview into the web browser
    and see whether the access is permitted.





    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited September 2003
    Using:
    http://localhost/rbwebpub/Cache\{BAE7D8AD-E59B-4745-91EB-BB661747A87C}\listview.htm
    shows the page with the two folders. So the security is ok, right?
    If I use the computer name or ip address instead of locahost I get an
    error that the page cannot be found.

    There is not alot to setup in the TrsWebTier and to reduce problems I
    used the demo ISAP app and only changed the IP address. I used the ini
    file to see if there was something obvious to fix.

    ini file:
    [WebTier]
    CacheDirectory=C:\rbWebPub\Cache\
    WebCachePath=http://172.16.192.25/rbWebPub/Cache/
    WebModuleURI=http://172.16.192.25/rbWebPub/Report.dll
    [GarbageCollection]
    MinSleep=60
    SeparateThread=1
    [LogSettings]
    Verbose=0
    EnableLogging=1
    Format=XMLFile
    Location=c:\winnt\system32\LogFiles
    [ServerConnection]
    Address=172.16.192.25
    Port=1333
    TimeOut=60
    [SessionSettings]
    SessionTimeout=300
    MaxReportCount=0
    [ViewerSettings]
    ToolbarOptions=31
    IncrementalMode=1
    IncludeOutline=1
    ZoomPercentage=70

    Can you see any problems with the ini file?

    Thanks,
    Dave

  • edited September 2003

    You have the IP address specified for the WebModuleURI and WebCachePath.
    There should not be an issue browsing

    http://172.16.192.25/rbwebpub/Cache/{BAE7D8AD-E59B-4745-91EB-BB661747A87C}/listview.htm

    that is the URL that will be generated by the WebTier.






    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited September 2003
    It turns out there where three web sites defined on the server and one
    of them had reserved the IP address. All works well now.

    Thanks for the help,
    Dave

This discussion has been closed.