为什么我的ironpython prg没有在VS13之外运行?

时间:2014-04-08 12:03:36

标签: visual-studio scheduled-tasks ironpython

我会尝试解释我的问题......

我在Ironpython 2.7中使用VS13编写了一个小程序脚本。它访问某些LAN路由器以对配置进行一些更改,然后重新启动它们。

如果我在VS13中运行它,调试,否则它可以完美运行。一旦我尝试安排它并且:

  • 编译然后运行Exe 或
  • 从CL
  • 运行它

失败了。详情如下。

运行已编译的exe。

  

应用程序:MaxRouter.exe Framework版本:v4.0.30319描述:   由于未处理的异常,该过程终止。例外   信息:IronPython.Runtime.Exceptions.ImportException Stack:at   Microsoft.Scripting.Interpreter.Interpreter.Run(Microsoft.Scripting.Interpreter.InterpretedFrame)   在Microsoft.Scripting.Interpreter.LightLambda.Run8 [[System ._ Canon,   mscorlib,版本= 4.0.0.0,文化=中性,   PublicKeyToken = b77a5c561934e089],[系统。 _Canon,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统._ 佳能,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统。 _Canon,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统._ 佳能,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统。 _Canon,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统._ 佳能,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[System.Int32,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统。 _Canon,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089]](系统._ 佳能,系统。 _Canon,   System ._ Canon,System。 _Canon,System ._ Canon,System。 _Canon,   系统._ 佳能,Int32)at   System.Dynamic.UpdateDelegates.UpdateAndExecute7 [[系统。 _Canon,   mscorlib,版本= 4.0.0.0,文化=中性,   PublicKeyToken = b77a5c561934e089],[系统._ 佳能,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统。 _Canon,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统._ 佳能,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统。 _Canon,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统._ 佳能,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[System.Int32,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[系统。 _Canon,mscorlib,   版本= 4.0.0.0,文化=中立,   公钥= b77a5c561934e089]](System.Runtime.CompilerServices.CallSite,   System ._ Canon,System。 _Canon,System ._ Canon,System。 _Canon,   系统._ 佳能,系统。 _Canon,Int32)at   IronPython.Runtime.Importer.ImportLightThrow(IronPython.Runtime.CodeContext,   System.String,IronPython.Runtime.PythonTuple,Int32)at   IronPython.Runtime.Operations.PythonOps.InitializeModuleEx(System.Reflection.Assembly,   PythonMain.Main()

中的System.String,System.String [],Boolean)

CL运行,作为批量运行ipy.exe>

Traceback (most recent call last):
      File "Z:\My Documents\Personal\VS Proj\MaxRoutSpeed\MaxRoutSpeed\MaxRouter.py"
    , line 1001, in <module>
      File "Z:\My Documents\Personal\VS Proj\MaxRoutSpeed\MaxRoutSpeed\MaxRouter.py"
    , line 145, in main
      File "Z:\My Documents\Personal\VS Proj\MaxRoutSpeed\MaxRoutSpeed\MaxRouter.py"
    , line 200, in WorkerThread
    SystemError: The remote server returned an error: (401) Unauthorized.

我试图在我的用户,SYSTEM和NW服务下安排它,总是没有快乐。

修改 我想这个问题可能在这里:

auth = "Basic " + System.Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(cLogin + ":" + cPW))

然后

webReq.Headers.Add("Authorization", auth)

使用Fiddler我注意到,如果我通过VS运行,登录时的答案是:

Decoded Username:Password= myrealuser:myrealpw

以交互方式运行时:

Decoded Username:Password= myrealuser:x

所以,失败了。

为什么?


感谢任何建议,

中号

0 个答案:

没有答案