.Net应用程序作为Azure Web作业不在磁盘上写入

问题描述 投票:0回答:2

我有一个带有构建平台x86的.net核心2.2控制台应用程序,它只是调用一个非托管的dll,返回结果的bool,这个dll还在磁盘上写了一个名为'OMNISCHEDULERLIB.LOG'的txt文件,而在本地调试时我可以运行它和函数正确执行并在控制台上输出结果boolean off dll。

class Program
{
    static void Main(string[] args)
    {
        try
        {
            var result = ProcessJobs();
            Console.WriteLine(result);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message + e.StackTrace);
        }
    }

    [DllImport("Output/OmniSchedulerLIB.dll", CallingConvention = CallingConvention.StdCall, EntryPoint = "ProcessJobs")]
    private static extern bool ProcessJobs();
}

这是我的Program.cs文件的代码,它在本地正确调用dll并在文件夹上生成输出'OMNISCHEDULERLIB.LOG'。当我将它作为AppService的WebJob部署到azure时,webjob在控制台上打印出正确的结果,但是在输出文件夹下没有创建日志文件(我已经通过ftp和Kudu工具进行了检查)。我不明白的是,如果我继续使用Kudu工具和webjob目录并通过cmd'start myapp.exe'运行控制台应用程序的.exe,我会在控制台上获得结果并创建.log文件在我的webjob上的输出文件夹下。

我的问题是什么命令是运行以执行我的.net核心控制台的azure webjob,以及它如何阻止在磁盘上写入,或者对这种情况的任何其他解释?

编辑:进入D:\ home \ data \ logs \后,我能够找到正在运行的脚本

[03/13/2019 10:05:00 > a87042: SYS INFO] Status changed to Initializing
[03/13/2019 10:05:05 > a87042: SYS INFO] Run script 'OmniManager.OmniSchedulerWebJob.exe' with script host - 'WindowsScriptHost'
[03/13/2019 10:05:05 > a87042: SYS INFO] Status changed to Running
[03/13/2019 10:05:10 > a87042: INFO] True
[03/13/2019 10:05:10 > a87042: SYS INFO] Status changed to Success

但是.log文件不是在那里生成的,但是如果我从kudu的cmd'start OmniManager.OmniSchedulerWebJob.exe'中运行命令它将返回相同的上述结果'True',但生成了.log文件。我试过没有成功添加一个run.cmd来运行我的dotnet控制台应用程序DLL但似乎我得到一个错误,因为我无法从x86平台运行它,我还没有找到一种方法来运行'dotnet'在选择.net的x86 sdk时命令,但我的exe将以32位执行。

c# azure .net-core azure-webjobs
2个回答
1
投票

您可以使用dotnet consolecorewebjob.dll来运行控制台核心应用程序。有关更多详细信息,请参阅有关How to deploy a .NET Core console application to Azure, WebJob的文章。

您可以尝试在D:\home\data\logs\OMNISCHEDULERLIB.log下查看日志。


0
投票

显然,因为我能够通过运行.u核心应用程序的.exe(我作为x86自己发布,作为x86)通过kudu powershell工具获得预期的输出.log文件,解决方法是添加一个run.cmd文件到使用命令'cmd /c myapplication.exe'的webjob,这样它将是dll操作返回的布尔值的结果,并允许dll在webjob目录上写入。所有的答案都不足以达到我的解决方案,因为他们在提出这个问题之前提供了我已经越过的有用链接,但我很欣赏所有的输入。

© www.soinside.com 2019 - 2024. All rights reserved.