最近、新しい開発プラットフォームに移行しました。ワークフロー全体が問題なく動作するように、まだいくつかの部分をセットアップしています。プロジェクトを本番環境に昇格させる必要があるという問題が 1 つありますが、サーバーでエラーが発生し続けます。私たちのチームは、これを簡単に解決できるほど IronPython に精通していません。
これに関連するスクリプトを編集しています。元のスクリプトは次のとおりです: (機密および不要な部分を編集/削除したことに注意してください)
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".
には、他のインポート宣言と同じようにインポートを宣言しようとしたエラーが表示されます:from System.Net import ssl
それでも同じエラーが発生します。
SecurityProtocolType
2 番目の解決策では、ServicePointManager が正常にインポートされたにもかかわらず、スクリプトが を認識できません。
Python の組み込みライブラリ ( ) をインポートできないように見える理由がわかりませんssl
。他のスクリプトにはまったくアクセスできないため、私が投稿したスクリプトだけをいじることができることをご理解ください。