这个问题我已经有好几天了,还没弄清楚是什么。
在我的Blazor独立程序中,我使用Azure活动目录处理身份验证,并遵循以下步骤设置它:1
它在本地非常有效,但在将其从Azure DevOps发布到Azure的静态Web应用服务之后,身份验证重定向就停止了工作,在查看了该站点使用Fiddler提出的请求之后,很明显,重定向到Microsofts身份验证站点从未发生过。
有趣的是,在回调的URL中没有身份验证错误消息(因为我通常是在出了问题时得到的)--根本没有信息,弹出窗口也没有打开。这里是我从浏览器控制台获得的唯一错误信息。
部署到Azure静态应用程序就像本教程中的2一样,这是我的DevOps管道yaml,以防有帮助。
# Example Taken From https://reddit.fun/96630/devops-pipeline-unable-deploy-blazor-static-package-private
# research documentation https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/webassembly?view=aspnetcore-6.0#standalone-deployment
# Documentation of Azure Static Web App Task https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/azure-static-web-app?view=azure-devops
trigger:
- main
pool:
vmImage: ubuntu-latest
variables:
buildConfiguration: 'Release'
dotNetFramework: 'net6.0'
dotNetVersion: '6.0.x'
steps:
- checkout: self
submodules: true
- task: UseDotNet@2
inputs:
version: $(dotNetVersion)
includePreviewVersions: true
- task: CmdLine@2
inputs:
script: "dotnet workload install wasm-tools"
- task: DotNetCoreCLI@2
displayName: "dotnet restore"
inputs:
command: restore
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
displayName: "Publish Blazor App"
inputs:
command: publish
publishWebProjects: true #required for publish
arguments: '--configuration $(buildConfiguration) --framework $(dotNetFramework) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: false
- task: DownloadPipelineArtifact@2
displayName: "Download Artifacts"
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)'
- bash: cd $(Build.ArtifactStagingDirectory); echo $(ls); cd 'KapaBlazorWeb'; echo $(ls);
- task: AzureStaticWebApp@0
inputs:
cwd: $(Build.ArtifactStagingDirectory)
skip_app_build: true # skip build because restore of build will probably fail?!
app_location: '[BlazorAppName]/wwwroot'
azure_static_web_apps_api_token: '[TOKEN]]'我的问题是,如果您发生过类似的事情,并且您知道如何解决这个问题,因为我对Azure非常陌生,而且从未使用过Azures静态Webservice。也许问题不在于Blazor本身,而在于静态应用程序服务?有什么我可以错过的吗?有没有办法了解更多关于ASW上正在发生的事情的信息?
编辑: Update I还发布了由Visual模板生成的默认Blazor Wasm项目(也是独立的),并且在本地也是如此,但是在Azure提供的静态Web服务上,重定向到Microsofts身份验证页面永远不会发生,它总是会转到‘/验证/登录失败’路径。
我猜想IIS服务器存在一些我还无法找到的配置问题。
发布于 2022-04-22 15:01:52
好的,我终于找到了这个问题,我想把它放在这里:
在使用默认的Blazor模板测试所有内容之后,我至少得到了一个错误,这个问题最终得到了答案:
BuzorWASMNET6Preview4AzureAD-登录时出错:“无法读取未定义属性”toLowerCase“
然后,我将这三行添加到csprj文件中(就在包含所有PackageReferences的Itemgroup下面)
<ItemGroup>
<TrimmerRootAssembly Include="Microsoft.Authentication.WebAssembly.Msal" />
</ItemGroup>现在它神奇地起作用了--显然是因为这个包在发布过程中被修剪了,这导致了问题的出现。
希望它对将来的人有帮助:)
https://stackoverflow.com/questions/71956561
复制相似问题