Recently one of our clients asked us to integrate sql reporting services and sharepoint. They also wanted to give there external users access to the reports.
Obviously we said it was a no brainer. Exposing sharepoint 3.0 to the internet was an easy enough task. We simply setup a new zone for the internet and within a short amount of time they could now access sharepoint with the internet.
The second task was not much more difficult. Integrating sql reporting services with Sharepoint takes installing the Sharepoint addin for SRS and adding the SRS Webart to a page that will display the report. Internally everything looked good.
The problem was accessing the same report from outside the company. The way SRS works is that the reportserver has to listen on a different port than Sharepoint server because it will not function in the same site as Sharepoint. This caused a problem with the mapping of the internet address and the internal addres (i.e. computer name). When you accessed the report fron the internet SRS wanted to use the internet access internally to find the report. The problem is tha most firewalls won’t allow you to bounce inside, to outside, inside because they look at this as an intrusion and block it. This in fact was our issue. SRS doesn’t provide a configuration to manage accessing the report internally and externally like Sharepoint does.
After testing various configurations we determined we had to trick the server into thinking the external address was really an internal address. It turned out to be a simple fix. We had to modify the hosts file on the server running SRS and add a line that maps the external address to the internal IP of the SRS server. From that point on when a request was made to that server that came from the internal address it would resolve to the internal server ip address and execute the report.