问题描述
我使用Visual Studio 2019创建了一个新的Blazor项目(看图片)
我检查了https,托管的ASP.NET Core和渐进式Web应用程序
之后,Visual Studio创建了客户端项目,服务器项目和共享类项目。 我确保该项目没有错误,因此我将其编译并在Visual Studio上运行。
之后,我要将其托管到IIS中,所以我进入服务器项目,右键单击,发布,然后将所有内容发布到我的发布文件夹中。
一切正常,现在我进入IIS,添加新站点,并选择之前生成的发布文件夹的路径(我使用80端口进行此测试)。
我还向Web配置授予IIS_IUSRS权限。
现在,我在浏览器中输入localhost:80,然后进入无限循环,等待页面加载,但页面永远不会加载。
所以我进入IIS管理器,并说Visual Studio默认生成的Web配置被认为是错误的。
我的webconfig.xml:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processpath="dotnet" arguments=".\Funzia.Server.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: 4872489F-5CAD-4DF4-BAFC-9D401F53BF48-->
我已经安装了ASP.NET Core Runtime捆绑包,也安装了dotnet-hosting-2.2.2。
实际上,我可以轻松地托管Server App blazor,零问题,但是当我尝试发布Blazor WebAssembly App时,它无法正常工作。
其他有用的信息:
模块不丢失。
dotnet --info的输出:
.NET Core SDK (che rispecchia un qualsiasi file global.json):
Version: 3.1.301
Commit: 7feb845744
Ambiente di runtime:
OS Name: Windows
OS Version: 10.0.18363
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\3.1.301\
Host (useful for support):
Version: 3.1.5
Commit: 65cd789777
.NET Core SDKs installed:
3.1.300 [C:\Program Files\dotnet\sdk]
3.1.301 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.18 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.18 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.18 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
我还尝试添加自动签名的证书并尝试通过https访问,但是我遇到了与使用http相同的结果。
更进一步,我还尝试通过控制台发布项目,我认为Visual Studio可能会创建损坏的Web配置文件,但创建的文件是相同的。
我发现其他一些用户也遇到了此问题,但是我还没有找到任何解决方案。
有什么建议吗?
解决方法
您可以尝试以下步骤在iis上发布Blazor WebAssembly应用程序。我测试了它可以在我的PC上正常工作。
要首先在iis中发布blazor应用程序,请确保您已在iis功能下安装。
- .NET Core托管包
- ASP.NET Core运行时
根据您的版本下载并安装Runtime and Hosting软件包。安装主机捆绑包之后,别忘了重启机器。
现在,查看位于屏幕左侧的“解决方案资源管理器”选项卡。右键单击解决方案的Server项目BlazorDDL.Server。单击发布。
您将看到一个新屏幕。在左侧菜单中,单击文件夹。选择要将Blazor应用程序发布到的文件夹。单击“发布”。如果没有错误,则您的应用程序将成功发布。
并且您必须配置应用程序池。您会在左侧面板中找到它。双击池ankisite。将出现“编辑应用程序池”窗口。从“ .NET CLR版本”下拉列表中,选择“无托管代码”选项。
我通过将应用程序托管到Azure来解决了这个问题。
我认为我的自动签名证书有问题。 此外,我的Windows功能窗口中缺少某些功能。