c# - 为什么 GetManifestResourceStream 在运行时失败?
问题描述
我在生产代码中遇到了难以重现的错误,我在运行时看到GetManifestResourceStream
返回null
。
上下文:我正在运行作为 Windows 服务自托管的服务堆栈服务。此服务包含需要许可证文件的第 3 方软件。我已将许可证文件添加到项目中并将其配置为Embedded Resource
.
许可证按以下方式按请求加载:
var license = new License();
using (var licStream = EmbeddedResourceScope.GetStream(Constants.LicenseFile))
{
// licStream can sometimes be null at runtime
license.SetLicense(licStream);
}
这是代码EmbeddedResourceScope
public static class EmbeddedResourceScope
{
public static Stream GetStream(EmbeddedResource name)
{
var scope = typeof (EmbeddedResourceScope);
var resourceAssembly = Assembly.GetAssembly(scope);
var resourceStream = resourceAssembly.GetManifestResourceStream(scope, name);
return resourceStream;
}
}
我在这里遗漏了一些明显的东西吗?也许与线程安全有关?
当运行时问题弹出时,此代码对于每个请求都会失败,直到服务重新启动。
解决方案
推荐阅读
- android - 如何将渐变而不是颜色应用于 TabLayout 指示器
- apache - 如何重定向 http 和 www 并隐藏 url 和文件扩展名中的文件夹?
- python - 从给定的字典创建一棵树
- python - 使用 print() 函数显示带有自定义分隔符的列表项
- excel - 工作表计算不从个人.xlsb 运行
- dart - 取消图像选择器时 Flutter 调试器崩溃
- php - VS CODE 中的 regexp_replace
- javascript - 过滤字符串数组并返回初始状态
- c# - 过滤多个因素时如何将数据从视图发送到控制器?
- windows - 这是哪种编程/标记语言?