1

最近、新しい開発プラットフォームに移行しました。ワークフロー全体が問題なく動作するように、まだいくつかの部分をセットアップしています。プロジェクトを本番環境に昇格させる必要があるという問題が 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それでも同じエラーが発生します。

SecurityProtocolType2 番目の解決策では、ServicePointManager が正常にインポートされたにもかかわらず、スクリプトが を認識できません。

Python の組み込みライブラリ ( ) をインポートできないように見える理由がわかりませんssl。他のスクリプトにはまったくアクセスできないため、私が投稿したスクリプトだけをいじることができることをご理解ください。

4

1 に答える 1