Can't access PowerBi Report Server from outside of Network - powerbi

Scenario
I'm using Power Bi Report Server - Developer (15.0.1107.116) which is directly connected to Microsoft SQL Server 2008 Database and Microsoft SQL Server 2019 Database, the Operating System is Microsoft Window Server 2019 with Internet Information Service (IIS). IIS already has /RDWeb web portal on 443 port and PBiRS is also on 443 port, both with legit SSL Certificate. Locally both /RDWeb and /Report are accessible in the local area network. I'm also able to connect to IIS main web page from outside of network.
Issue
I can connect with the Report Server /Report web portal on Local Network but when I try to connect to /Report from outside of the network, I get an error of 404 though the same /Report is accessible from Local Area Network.
Points to Note
Firewall is off of (Domain/Private/Public)
Server is in DMZ
IIS Main Webpage is accessible from outside the network
Only /Report is not accessible from outside network

Please keep in mind that this guide is of HTTP 8080 insecure protocol based.
Before starting, I'm assuming that the Power Bi Report Server service running properly, the database is connected successfully and Web URLs are not yet set.
Steps
Go to Web Service URL tab and click APPLY.
Note: Once applied, you will see a link on the same page.
Similarly go to Web Portal URL tab and click APPLY.
Note: Once applied, you will see a link on the same page. The virtual directory is actually sub directory for accessing Power Bi Report Server web portal.
Things to keep in mind.
Database should be SQL Server 2012 or later.
Port 80 must be allowed in Firewall for inbound traffic.
Port 80 must be forwarded in the modem.
You must have public Static IP from your ISP.
Now you can check for localhost as http://localhost/virtual-directory and hopefully it will work, then you can check with your public static ip like http://your-public-static-ip/virtual-directory where in this case virtual_directory is Reports from step 2.
Examples
In case if virtual_directory is Reports from step 2.
For Local: http://localhost/Reports
For Public: http://your-public-static-ip/Reports

Related

Can a remote server send response to a local client on a custom port?

For network gurus out there, I'll like to ask some questions regarding some unique setup where the server will be sending a request to a client on localhost on a certain port.
I have a cloudy understanding of some network fundamentals that I hope you'll be able to help me out.
Kindly check the image below:
Basically, there's a static website hosted in AWS s3 and at some point this website will send a request to https://localhost:8001.
I was expecting that it will connect to the nginx container listening on port 8001 in my local machine, but it results in 504 gateway error.
My questions are:
Is it possible for a remote server to directly send data to a client at a particular port by addressing it as localhost?
How is it possible for the static website to communicate to my local docker container?
Thanks in advance.
In the setup you show, in the context of a Web site, localhost isn't in your picture at all. It's the desktop machine running the end user's Web browser.
More generally, you show several boxes in your diagram – "local machine", "Docker VM", "individual container", "server in Amazon's data center" – and within each of these boxes, if they make an outbound request to localhost, it reaches back to itself.
You have two basic options here:
(1) Set up a separate (Route 53) DNS name for your back-end service, and use that https://backend.example.com/... host name in your front-end application.
(2) Set up an HTTP reverse proxy that forwards /, /assets, ... to S3, and /api to the back-end service. In your front-end application use only the HTTP path with no host name at all.
The second option is more work to set up, but once you've set it up, it's much easier to develop code for. Webpack has a similar "proxy the backend" option for day-to-day development. This setup means the front-end application itself doesn't care where it's running, and you don't need to rebuild the application if the URL changes (or an individual developer needs to run it on their local system).

Not able to see test webpage remotely but can ping the server

I have a test server that I can ping successfully although I'm not able to see a hello world test page I've created and mapped in IIS. I've also created an Inbound rule in the windows firewall. Is there something else I'm missing? I'm browsing http://x.x.x.x:888
Any advice greatly appreciated.
Many thanks,
Update
This is a AWS server
Have tried telnet from a client machine but I get Operation timed out
Nothing in IIS logs (C:\inetpub\logs\LogFiles\xxx)
Port 888 is what I assign the test website to in IIS
Have also moved the test file (index.htm) into the default website within IIS and tried browsing http://x.x.x.x:80/index.htm but I get This site can’t be reached
browsing http://localhost on the server displays the 'hello' message test page.
In windows explorer I've gone to the security settings by right clicking on the website folder and allowing 'everyone' read access
Firewall screen shot
Important update
the IP http://x.x.x.x:888 is the public IP within AWS for the server, not the interal IP of that actual server
On windows 10, I found a firewall issue for my testing server, this worked for me: go to Windows Firewall -> Advanced Settings -> Windows Firewall properties and set a public profile to allow incoming connections.

Running SonarQube on internal Web Server

I am trying to make Sonarqube working on a virtual machine, IP 192.168.0.150, running on a production server (Win Server 2012 R2). I need also to access it from the Internet. Thus, I created a new website in IIS on the Physical server enabling the reverse proxy and redirecting everything to 192.168.0.150. This apparently works: I can access successfully the dashboard from any remote pc.
The problem is: when i try to login, sonarqube redirects to 192.168.0.150. As you can easily imagine this blows up everything from a remote pc.
I tried everything in sonar.web.host and sonar.host.url but nothing.
I tried an Outbound rule in IIS to overwrite 192.168.0.150 with my website address but it doesn't work with gzip compression.
What can I do?
Thanks
Resolved.
I had to check "Reverse rewrite host in response headers" option in IIS -> Machine -> Application Request Routing Cache -> Server Proxy Settings.

publish jax-ws service on public ip

I've a simple jax-ws web service that on localhost works fine with the clients, but now I want to publish the web service on a public ip, so the clients can interact with it through wan network instead lan network.
I signed to no-ip dns service provider and defined my host like "myname.no-ip.info".
In my code i start the service in this way:
Endpoint.publish("http://localhost:8080/baseStationProvider", new BaseStationProvider());
and the browser at http://myname.no-ip.info:8080/baseStationProvider#wsdl doesn't show the wsdl.
If i start the service in this way:
Endpoint.publish("http://myname.no-ip.info/baseStationProvider", new BaseStationProvider());
compiling the code, it raise this exception:
Server Runtime Error: java.net.SocketException: Unresolved address
Any idea to problem and/or how to do what i need?
thanks in advance
This seems likely to do with routing and firewalls as opposed to web service publication etc. Ignoring the web-service aspect, can you even reach your server when you use this in your browser:
http://myname.no-ip.info:8080/
?
Which should look the same as
http://localhost:8080/
If not, then it is probably DNS/Routing/Firewalls that you need to check. Diagnostics that will help there are:
1) can the machine you are testing on resolve the DNS name mynam.no-ip.info? nslookup, ping, traceroute/tracert
2) is there a firewall blocking port 8080 from reaching local host? If the route from the internet to your host hits a firewall (which it will) that firewall will have to forward the request.
Good luck.

WebService timeout

I have a problem with deploying my web service in our Web server. In my
development machine (inside of our LAN), everything works fine. When I move
the application into our Web server (public addressed), I always get the
timeout exception. while i connecting the web service through my web browser it works fine with no issues, but through application am getting the timeout error. My app connects to our database server (inside of our LAN) to get statistical data in form of datasets. can i know the issue about this point.
That is most likely a firewall/port forwarding issue.
Did I understand you correctly: Your client application connects to the database server directly?
You should check which port you are using to connect to the database server.
Then check if the web server has an active firewall and if so, configure it properly to accept connections on that port.
You can always easily check if a port is open and reachable by using telnet:
On the command line type telnet MY_IP MY_PORT.
If a connection can be established the port is open.