![](/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.