- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们最近迁移到了一个新的开发平台。我们仍在为我们的整个工作流程设置一些部分以使其正常工作。我们有一个问题,我们需要将一个项目提升到生产环境中,但我们在服务器中不断出现错误。我们的团队并不精通 IronPython,无法轻松解决此问题。
我正在编辑与此相关的脚本。原脚本如下:(请注意,我已经编辑/删除了 secret 和不必要的部分)
def callWebService(URI, setProjectState):
job = jobs[0]
job.AddNote(0, job.CurrentVersion, ('%s.' % (job.Id)))
PARAMETERS='{"id": "%s", "someData": "%s"}' % (job.Id, setProjectState)
from System.Net import WebRequest
request = WebRequest.Create(URI)
request.ContentType = "application/json"
request.Method = "POST"
from System.Text import Encoding
bytes = Encoding.ASCII.GetBytes(PARAMETERS)
request.ContentLength = bytes.Length
reqStream = request.GetRequestStream()
reqStream.Write(bytes, 0, bytes.Length)
reqStream.Close()
response = request.GetResponse()
from System.IO import StreamReader
result = StreamReader(response.GetResponseStream()).ReadToEnd()
print result
return;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
callWebService('https://somesite.com/needtoposthere', 'Production')
新平台的支持告诉我们,为了解决这个问题,我们需要绕过 ssl 验证部分,因为只有在我们的工作流的这一部分中,我们才会将数据发布到 HTTPS url,因为它是生产。
我试过很多方法,比如添加ff代码:
import ssl
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
pass
else:
ssl._create_default_https_context = _create_unverified_https_context
还尝试按照支持人员的建议插入这个:
from System.Net import ServicePointManager
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
和
from System.Net import ServicePointManager
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072
我也尝试过使用 ssl 库的 verify = false
但仍然不断出错。
对于第一个解决方案,我得到的错误是 ssl
模块似乎无法导入。日志显示错误 module named "ssl"cannot be found".
得到同样的错误。
对于第二种解决方案,即使 ServicePointManager 已成功导入,脚本也无法识别 SecurityProtocolType
。
我不明白为什么我什至无法导入 Python 的内置库 (ssl
)。请理解,我发布的脚本是我们唯一可以修改的脚本,因为我们根本无法访问其他脚本。
最佳答案
当使用 .NET 的 WebRequest 时,您将绕过标准 python 中可能存在的所有 SSL/TLS 基础结构,您需要更改 .NET 端的 SSL/TLS 设置。
鉴于未找到模块 ssl
,它要么不在模块查找路径上,要么与 IronPython 不兼容(因为它可能是 native 的)。
警告:以下示例禁用所有证书验证并且不适合生产此外,它将 SSL/TLS 版本限制为 1.2。
from System.Net import ServicePointManager, SecurityProtocolType
ServicePointManager.ServerCertificateValidationCallback = lambda sender, certificate, chain, sslPolicyErrors: True
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
如果可能,您应该避免完全禁用证书验证并至少进行某种指纹检查,这意味着您正在固定并只允许一个预期的、不完全有效的开发证书。这可能看起来像
def certificateCheck(sender, certificate, chain, sslPolicyErrors):
# check for certificate whitelist, specific root certificate etc.
# print certificate
return certificate.Thumbprint == "..."
ServicePointManager.ServerCertificateValidationCallback = certificateCheck
关于.net - 在 IronPython 中禁用 SSL 验证以发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55429517/
虽然我熟悉使用 PythonModule 程序集属性制作 .net 程序集,但我对如何制作子模块有点好奇。这会是类(class)中的类(class)吗?即:如果我有一个定义为 IronPython 模
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
有一个名为“Entities”的 IronPython 包。该包包含一个“Entity.py”文件,该文件定义了“Customer”类和“Address”类。 如果我运行这个程序: customer
所以我的数据表结构如下 ColumnName1 | ColumnName2 | ColumnName3 ------------|-------------|------------ value1
我想将 ironpython 作为脚本运行,而不是将 ironpython 代码编译成可执行文件。有没有办法将ironpython作为脚本运行? 最佳答案 是的,解释器安装在 Program File
我在 IronPython 中托管 IronPython。我没有找到使用等效的命令行参数初始化它的方法:-X:FullFrames . 我的代码有点像这样: import clr clr.AddRef
我们将 ironpython 嵌入到我们的应用程序中,以便脚本可以在我们的应用程序上下文中执行。 我使用 Python.CreateEngine() 和 ScriptScope.Execute() 来
我一直在考虑添加 IronPython 来扩展我支持的科学应用程序的想法。 这是一个好主意还是一个可怕的主意? 有没有在生产应用程序中使用 IronPython 的好例子。我看过 Resolver,它
我正在使用 IronPython 脚本来重置所有过滤器并设置一些文档属性。 “FUTUREONLY”下面的文档属性是一个下拉属性控件,根据表达式有 3 种可能的选择。当我运行脚本时,它会将文档属性重置
在查看了这两个项目中的每一个之后,似乎两者都非常相似。两者都运行在 CLI 之上,都有 Python 风格的语法,都使用 .NET 而不是标准的 Python 库。 那么,它们之间的区别和各自的优势是
我正在尝试使用 Microsoft.Web.Administration 库远程管理 IIS7 安装。 我在 IronPython 中执行此操作: import Microsoft.Web.Admin
有没有等同于Cython的东西对于 IronPython?也就是说,一种使用类型注释来编译简单函数以提高性能的方法?我知道 IronPython 的一个好处是能够快速地用 C# 或 F# 之类的东西编
我正在考虑使用 IronPython 开发一个小型应用程序,但是我想将我的应用程序分发给非技术人员,因此理想情况下我希望能够为他们提供我的应用程序的标准快捷方式以及他们需要的说明首先安装 IronPy
我在条形图上使用以下代码来切换维度。 myChart.XAxis.Expression = "[Sales]" myChart.BarWidth = 1
如何使用 Ironpython 返回 Spotfire 文件中文档属性的完整列表。 属性可以通过设置 Document.Properties["myProperty"] = "myValue" 我想做
我正在尝试使用 IronPython.Hosting 和 Pygments 为我的博客创建 ASP.NET 语法荧光笔。问题是,如果没有黑客攻击,Pygments 至少不能在 IPy 2.0 上运行。
我在 Windows XP (SP3) 系统上安装了 Aptana Studio 3 和 Eclipse 4.2.1(带 PyDev 和 PyDev 扩展)。我一直未能成功加载外部 .NET 程序集。
大家早上好, 我已经在这个问题上工作了几天,但我找不到解决办法。我已经研究并谷歌搜索无济于事。任何帮助/见解将不胜感激。我正在尝试创建一个按钮,单击该按钮时将自动通过日期过滤器(比如说从 1/1/15
想必大家都已经听说过some key developers leaving the Dynamic Languages team的消息了。由于他们认为 Microsoft 对动态语言的支持正在减弱。
我试图从经理的角度回答这个问题:如果我们用 IronPython 而不是 C# 编写应用程序,我们会招致什么整体性能损失? 这个问题是针对那些可能已经进行了一些测试、基准测试或已经完成从 C# 到 I
我是一名优秀的程序员,十分优秀!