maybe someone more experienced in IIS could help.
I have the following scenario: Windows Server 2019, mais site and several applications running on IIS 10 i.e (site.com/app1, site.com/app2).
My objective is to have a vue/nuxt app running in site.com/app3, utilizing same SSL config.
I've already tested IISNode and Url Rewrite without success, my best shot was redirecting site.com/app3 to port 3000 where the app is running, but it doesn't load anything but the main page.
Related
I've download Visual Studio 2022 and tested the default Blazor Server template (Home/Counter/FetchData). In Visual Studio, IIS Express I can open as many tabs / instances of the application as I want.
When I host the default Blazor Server template in local IIS (Windows 10 Home 21H2, IIS 10) I can only open three instance of the application. The fourth will hang until the first is closed. I see someone has ran into nearly the exact same issue but there is no solution provided.
Anyone know whats going on? I don't understand why IIS Express can handle multiple instnaces but IIS 10 can not. Even Conveyor by Keyoti can support many many tabs compared to IIS 10.
Note: I notice SignalR has limitations on Windows / IIS of 10 concurrent connections, but I'm not even getting two.
Updates
Out of curiosity I tested it on Windows Server 2016 Standard and I can open hundreds of tabs.
I re-installed IIS on Windows 10 to make sure something wasn't wacky.
I've ensured WebSocket Protocol is enabled.
Windows 10 Home supports 3 concurrent connections at the same time, according to Microsoft.
Normal HTTP requests to IIS get process and response returned. So even if you manage to achieve 4 or more at the same time, IIS will work through the request queue and you may not have noticed that your request was slightly delayed unless your individual requests take a while to process.
However with SignalR, a persistent connection is maintained to the server. So if you open one connection per browser tab, and you have 4 tabs open, that 4th tab is going to hang indefinitely until one of the other page has its connection ended (by closing the tab, manually disconnecting via code, or refreshing the page).
I can't reproduce the issue, and I have tried to search some way to solve it.I will summarize a few ways below that you can try.
Try to install Websocket Protocol in your Win10. You can find it in Windows features.
Workaround: install IIS Express in Web Platform Installer.
Workaround: Try to deploy it in windows server, and check whether have same issue. I found some posts also mentioned it may related with OS version.
The solution was incredibly simple (maybe too simple?). Don't use IIS at all.
In Program.cs just before building the app I override Kestrel ports to listen on any ip (for now).
(Optional) I provide a custom SSL certificate in the UseHttps constructor so that it can be emailed and installed on iOS and Android devices.
(Required) Then I publish the applications to a folder and just run the .exe on the hosting machines.
Program.cs
builder.WebHost.ConfigureKestrel(opt =>
{
opt.ListenAnyIP(8000);
opt.ListenAnyIP(8001, listOpt =>
{
listOpt.UseHttps(#"Path to.pfx file", "password for pfx file");
});
});
Now Windows 10 Home can support as many connections as the hardware can handle at https://192.168.0.XXX:8001. Is this how Blazor Server is expected to be deployed within a local network? I don't understand how this overcomes the connection limit pointed out in masons answer. Please let me know in the comments if I'm missing something.
I deployed my full stack app with a React frontend and an ASP.NET API to a shared folder on my machine. I can run the .exe that is in the build folder and it serves my web app to localhost through http & https like shown in this window
However when my colleague runs the same application on his machine it does not show the https link. Any idea if there is an additional package he may need to install in order to serve the app on https? I can't imagine any other reason why the app would run differently on different machines.
I have an ASP.NET Core app running on my server, and I can access it fine at https://localhost:5001, but I wanted to have it so that I can see the app from my laptop.
The IP of the server on my local network is 192.168.1.250, but https://192.169.1.250:5001 on my laptop does not display my site.
How do I expose the site to this IP (and through port forwarding out to everyone)?
I have Apache2 installed, so a method to (if this is even possible) connect asp.net into Apache2 would work too.
Apache webserver does not natively work with ASP, it looks like there is a workaround in this link
I have developed a simple ASP.Net Core Razor pages app that runs OK, deployed standalone, on an iMX6ULL development board running an Apache reverse proxy server. However, when I deploy the exact same app onto a different development board (same processor just made by a different company), the app appears to run OK but static content inside the 'wwwroot' folder is not found.
I have checked the web and content root paths when the app is running and they match where the publish folder is copied in both device file systems. As the source code for the app is unchanged, I am sure it must be something in the difference between the Apache and/or OS setup between the two devices but for the life of me, I cannot find/think what that is!! Does anyone have any ideas? I am pulling my hair out :(
If it helps, httpd.conf and httpd-vhosts.conf are the same on both devices, with Apache listening on 80 and forwarding to 5000 where the ASP.Net Core app tells me it's listening. Is it possible that there is a conflict on this port? I have tried 5050 but with the same result...
I've being reading alot on how node.js can be used to add real time features to web applications. Am a PHP developer but i have good grasp on javascript.
I have XAMPP installed my windows 7 machine which i use for development and i just installed node.js using the windows installer on the node.js site.
How do i make app communicate with the node.js server ?
I'm on OSX, and I'm basically heading down this same path.
First off, don't think of node.js like you would PHP and think you're setting up a vhost in XAMPP.
You need to look in to getting node.js to be listening as a server. There are several tutorials out there that go over this, but this one can help get you started:
http://www.albatrossrevue.com/2012/01/31/an-introduction-to-node-js/2000