![](/img/trans.png)
[英]Tests are running too slow for local web app. using C# Selenium WebDriver
[英]C# method works in local web server but not in azure web app. File not found error
我正在使用一个名为 FirmadorXadesNetCore 的库来签署 xml 文件。 我在 VS2019 中使用 nuget 包管理器导入了它,我使用的是 1.1.0 版。
调用线路时出现问题
parametros.Signer = new FirmaXadesNetCore.Crypto.Signer(cert);
使用本地 IIS 服务器运行 Web 应用程序,它工作正常,但使用 Azure Web 应用程序会引发错误“找不到文件”。
cert 变量在两种环境中都正确加载了证书,所以我不确定问题是什么。
任何见解将不胜感激。
我认为发生此错误是因为未找到.xml
文件。
原因是程序发布时,只会包含默认的文件和文件夹,不会包含自定义的文件和文件夹。 您需要修改.csproj
才能实现。
解决步骤:
1.通过kudu检查.xml
文件是否存在。
2.如果不存在,通过修改.csproj
文件来修改发布文件的内容。
修改后的示例代码如下:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ResolvedFileToPublish Include="test.xml">
<RelativePath>TextFile.txt</RelativePath>
</ResolvedFileToPublish>
</ItemGroup>
</Project>
有关更多详细信息,您可以在另一篇文章中查看我的答案。
我联系了 Microsoft Azure 支持,结果是使用本地证书存储来读取证书。
我一直在使用免费层进行测试,微软指出免费层或共享层不允许访问证书存储。 解决方案是升级到至少一个基本计划。
这是有关如何加载证书的链接,它说明它适用于基本计划及以上https://docs.microsoft.com/en-us/azure/app-service/configure-ssl-certificate-in-code#从文件加载证书
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.