为什么GetManifestResourceStream在运行时失败?

时间:2018-08-28 11:03:14

标签: c# servicestack embedded-resource aspose-cells

我在生产代码中遇到了难以重现的错误,在运行时我看到GetManifestResourceStream返回null

上下文:我正在运行自托管为Windows服务的服务堆栈服务。此服务包装需要许可证文件的第三方软件。我已将许可证文件添加到项目中,并将其配置为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;
    }
}

我在这里缺少明显的东西吗?也许与线程安全有关?

弹出运行时问题时,对于每个请求,此代码都会失败,直到重新启动服务为止。

0 个答案:

没有答案