C# 在另一台计算机上以编程方式调用python脚本并出现访问被拒绝错误

C# 在另一台计算机上以编程方式调用python脚本并出现访问被拒绝错误,c#,python,ironpython,C#,Python,Ironpython,我正在尝试执行一个python脚本,该脚本与调用它的应用服务器位于不同的服务器上。我正在使用IronPython调用脚本。在它试图处理脚本时,我似乎已将其正确连接,但出现错误“拒绝访问路径'\devSCRENG01\share\remotetest.py'。我肯定可以访问那个文件夹,这让我觉得IronPython正在使用一些我不知道的凭据。有人知道我如何为这种流程显式设置凭据吗 我已验证该路径确实存在,并且可以使用windows资源管理器访问它 private void ExecutePytho

我正在尝试执行一个python脚本,该脚本与调用它的应用服务器位于不同的服务器上。我正在使用IronPython调用脚本。在它试图处理脚本时,我似乎已将其正确连接,但出现错误“拒绝访问路径'\devSCRENG01\share\remotetest.py'。我肯定可以访问那个文件夹,这让我觉得IronPython正在使用一些我不知道的凭据。有人知道我如何为这种流程显式设置凭据吗

我已验证该路径确实存在,并且可以使用windows资源管理器访问它

private void ExecutePythonScript()
        {
            this.UpdateProcessStatus("Refreshing iMath Model...");

            //1: Create Engine
            var engine = Python.CreateEngine();

            //2: Provide Script and Arguments
            var script = @"\\devSCRENG01\share\remotetest.py";
            var source = engine.CreateScriptSourceFromFile(script);

            var argv = new List<string>();
            argv.Add(script);

            engine.GetSysModule().SetVariable("argv", argv);

            //3: Execute Script
            var scope = engine.CreateScope(); 

            source.Execute(scope); //process gets access error when trying to step over this.
        }
private void ExecutePythonScript()
{
此.UpdateProcessStatus(“刷新iMath模型…”);
//1:创建引擎
var engine=Python.CreateEngine();
//2:提供脚本和参数
var script=@“\\devSCRENG01\share\remotetest.py”;
var source=engine.CreateScriptSourceFromFile(脚本);
var argv=新列表();
argv.Add(脚本);
engine.GetSysModule().SetVariable(“argv”,argv);
//3:执行脚本
var scope=engine.CreateScope();
source.Execute(scope);//进程在尝试跳过此操作时出现访问错误。
}

我调用的脚本是一个测试脚本。成功处理后,它将向我和编写它的人发送一封电子邮件。

最好通过简单的读取来确认代码是否真的有权访问文件(甚至只是
file.Exist
)-这样你就可以解决实际文件访问中的问题(也就是说,您向读者错误地告知了代码实际运行的帐户)或者Python引擎是否有自己的限制(因为.Net过去对尝试从共享运行的代码有限制,这似乎是合理的……我认为它在这里也不适用)Alexei Levenkov,很好的建议,但我不确定如何检查哪个用户帐户实际用于执行代码。我可以使用哪个程序集检查File.Exist?似乎它还包括一些方法,用于查看调试期间传递了哪些凭据。请提出建议。最好确认代码是否确实具有访问权限通过简单地读取文件(或者甚至只是
file.Exist
)-这样,您就可以确定问题是否出在实际的文件访问上(即,您向读者错误地告知代码实际运行的帐户),或者Python引擎是否有自己的限制(这似乎是合理的,因为.Net过去对试图从共享运行的代码有限制……我也不认为它在这里适用)Alexei Levenkov,很好的建议,但我不确定如何检查实际用于执行代码的用户帐户。我可以使用哪个程序集检查File.Exist?它似乎还包括一些方法,用于查看调试期间传递的凭据。请提供建议。