c# - Azure WebService 找不到我的程序集之一,但它基于 Azure 控制台

标签 c# .net azure azure-web-app-service

我对 Azure 和 WebServices 非常陌生,所以请耐心等待。基本上,我有一个 WebService 引用 3 个不同的 dll SOCreate.dllEOTCBase.dllEOTC_InBuffer.dll,不是标准的 .NET dll,而是而是来 self 其他项目的 dll。在 Azure 上成功发布 WebService 后,我正在调用 WebService,它调用 EOTCBase.dll 中的方法。 EOTCBase.dll 中的方法尝试加载 EOTC_InBuffer.dll 程序集,如下所示:

程序集 dbAssembly = Assembly.LoadFile(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\EOTC_InBuffer.dll");

但是该调用失败并出现错误系统找不到指定的文件。 (HRESULT 异常:0x80070002)

当我检查 Azure 上有哪些文件时,我可以看到我的 WebService 和 bin 文件夹:

enter image description here

然后我进入 bin 文件夹,可以看到其中的所有 3 个 dll:

enter image description here

我猜这意味着所有 3 个 dll 都发布在 Azure 上并且可以在 bin 文件夹中使用。我尝试用谷歌搜索类似的内容,但找不到类似的场景。有人可以指出这里有什么问题或者引用一些阅读 Material 的链接吗?谢谢。

附注根据 Azure 控制台输出,这几乎看起来所有这 3 个 dll 都位于同一个 bin 文件夹中,但实际上其中一些实际上并不在那里。

最佳答案

更新

我的意思是在门户上打开 kudu,然后手动添加 mydll 文件夹,如我的屏幕截图所示。 .dll文件的具体路径为D:\home\site\wwwroot\mydll\a.dll。这样,如果操作成功,就不用担心临时文件夹的问题了。将所有将使用的 .dll 文件复制到 mydll 文件夹中。

enter image description here

隐私

您可以使用动态加载功能来使用您的.dll 文件。如果本地成功,部署后不成功,那么问题应该出在Azure云环境上。

    #region Dynamically load .dll
    object obj=null;
    byte[] filesByte;
    Assembly assembly;
    Type type;
    MethodInfo timerInitial;
    MethodInfo timerDispose;
    #endregion

    private void LoadDll()
    {
        try
        {
            filesByte = File.ReadAllBytes(Path.GetDirectoryName(Application.ExecutablePath) + "//EOTC_InBuffer.dll");
            assembly = Assembly.Load(filesByte);
            type = assembly.GetType("EOTC_InBuffer.dll");
            obj = System.Activator.CreateInstance(type);
            timerStart = tp.GetMethod("TimerStart");
            timerStop = tp.GetMethod("TimerStop");
            if (timerStart != null)
            {
                timerStart.Invoke(obj, null);
            }
        }
        catch(Exception)
        {

        }
    }

您在本地运行成功,但部署到 Azure 将失败。这个问题无法处理,因为我们无法在Azure环境中注册.dll,也无法通过代码读取并加载bin文件夹中的这些.dll文件。

这个问题我已经在another post中回复过之前也尝试过用代码来处理这个问题但是都失败了,希望对你有帮助。

关于c# - Azure WebService 找不到我的程序集之一,但它基于 Azure 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61785187/

相关文章:

c# - 从 Calllog 计算并发调用数

azure - 将 Azure Redis 缓存与 Node.js 结合使用(用于 Hubot 的大脑)?

c# - 在启动时运行程序

c# - 使用 TableServiceEntity 将复杂对象插入到 azure 表中

c# - LINQ to SQL 数据库行未更新

python - 如何在azure上的同一云服务中部署多台机器

rest - 交付和使用 Azure REST-API SharedKey 进行 Blob 上传

c# - VS2008 中有没有办法在 watch 或快速 watch 中搜索特定值?

C# : Retrieve array values from bson document

c# - 单元测试方法的有效输入