我会尝试解释我的问题......
我在Ironpython 2.7中使用VS13编写了一个小程序脚本。它访问某些LAN路由器以对配置进行一些更改,然后重新启动它们。
如果我在VS13中运行它,调试,否则它可以完美运行。一旦我尝试安排它并且:
失败了。详情如下。
运行已编译的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
所以,失败了。
为什么?
感谢任何建议,
中号