从 IIS 中的 Blazor 服务器端应用程序删除端口号

Removing Port number from a Blazor server side app in IIS

我在我们网站的不同端口号上有一个 Intranet .NET Core Blazor 服务器网站 运行。我可以使用 http://ourwebsite.com:8892 but I wanted to know if it can be rewritten to something like http://ourwebsite.com/blazorapp 使用 IIS 重写来完美访问它。

端口 80 上有另一个应用程序 运行,所以我无法使用它。

这是我在 Blazor 应用的 web.config 文件中写的内容

<rewrite>
        <rules>
            <rule name="removePort" stopProcessing="true">
                <match url="^http://ourwebsite.com:8892(/.*)?$" />
                <action type="Rewrite" url="http://ourwebsite.com/blazorapp{R:1}"/>
            </rule>
        </rules>
      </rewrite>

我无法使重写工作。每当我访问我们的网站 com/blazorapp 时,我都会在端口 80 上访问另一个应用程序,结果显示 404 not found 因为我正在寻找的 link 不是在那里。有什么我想念的吗? url 重写 Blazor .NET 核心不可能的端口号吗? 任何帮助将不胜感激。

如果要通过URL重写实现删除端口号,您需要在端口80而不是端口8892上创建URL重写规则。

方法:

web.config文件中的以下URL改写规则可以给大家参考。

此外,需要在服务器层面selectApplication Request Routing Cache,在右侧树节点select“Server Proxy Settings”,然后勾选“enable proxy”并应用.

如果你没有在IIS上安装ARR模块,可以参考下面link: https://docs.microsoft.com/en-us/iis/extensions/installing-application-request-routing-arr/install-application-request-routing-version-2

测试结果:

通过上面的重写规则,URL将被重写为如下格式:

http:///localhost/blazorapp 到 http://localhost:8892

建议:

但我建议你不要这样做,它可能会导致 balzor 路由混乱。

建议你换个域名,直接用别的域名的80端口,或者改成https默认的443端口,这样不用输入端口就可以访问URL。