我已经开始使用托管模型学习Blazor Webassembly。
我可以在本地使用Visual Studio代码创建并运行一个简单的Blazor Web应用程序。
但是,当我发布(在这种情况下为www.myasp.net)时,任何页面上都会出现以下脚本错误:
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer [100] 未处理的异常呈现组件:JSON中位置0处的意外令牌< SyntaxError:JSON中位置0上的意外令牌< Microsoft.JSInterop.JSException:JSON中位置0处的意外令牌< SyntaxError:JSON中位置0上的意外令牌< 在System.Threading.Tasks.ValueTask`1 [TResult] .get_Result()<0x21ea748 + 0x0002c>中:: 0 在Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(Microsoft.JSInterop.IJSRuntime jsRuntime,System.String标识符,System.Object [] args)<0x2010058 + 0x000e4>在:0中 在
谢谢
这是完整的错误:
Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer [100]
未处理的异常呈现组件:JSON中位置0处的意外令牌<
SyntaxError:JSON中位置0上的意外令牌<
Microsoft.JSInterop.JSException:JSON中位置0处的意外令牌<
SyntaxError:JSON中位置0上的意外令牌<
在System.Threading.Tasks.ValueTask 1[TResult].get_Result () <0x21ea748 + 0x0002c> in <filename unknown>:0 at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync (Microsoft.JSInterop.IJSRuntime jsRuntime, System.String identifier, System.Object[] args) <0x2010058 + 0x000e4> in <filename unknown>:0 at Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService
3 [TRemoteAuthenticationState,TAccount,TProviderOptions]中。EnsureAuthService()<0x20084c0 + 0x000ee>在:0中
在Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService 3[TRemoteAuthenticationState,TAccount,TProviderOptions].GetAuthenticatedUser () <0x2007c20 + 0x000d2> in <filename unknown>:0 at System.Threading.Tasks.ValueTask
1 [TResult] .get_Result()<0x21ebf88 + 0x0002c>中的位置:: 0
在Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService 3[TRemoteAuthenticationState,TAccount,TProviderOptions].GetUser (System.Boolean useCache) <0x1fcb190 + 0x00136> in <filename unknown>:0 at Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService
3 [TRemoteAuthenticationState,TAccount,TProviderOptions] .GetAuthenticationStateAsync()<0x1fc9ff0 + 0x000d0>中:0
在Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore.OnParametersSetAsync()<0x2135338 + 0x0012e>中:: 0
在Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(System.Threading.Tasks.Task任务)<0x2135d90 + 0x000ee>中的:0中
在Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()<0x1f67eb0 + 0x0020c>中的:0
在Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(System.Threading.Tasks.Task taskToHandle)<0x21391a0 + 0x000ca>在:0
答案 0 :(得分:0)
是的,
托管服务提供商授予应用程序池对根文件夹(wwwroot 文件夹正下方的文件夹)的完全访问权限,这为我解决了问题。
由于我强制我的网站使用 https,因此我还必须使用私钥获取我的证书的 .pfx 副本 - 然后我将其包含在 appsettings.json 文件中
"IdentityServer": {
"Clients": {
"xxxxxxxxx.Client": {
"Profile": "IdentityServerSPA"
}
},
"Key": {
"Type": "File",
"FilePath": "xxxxxxxxx.pfx",
"Password": "xxxxxxxxx"
}
}