Я нашел решение этой проблемы. Убедитесь, что telnet работает с нужным контейнером вне сети. Запустив
telnet 192.168.128.171 7051
Если Telnet не работает -> Проблема возникает из-за того, что порты не опубликованы / выставлены неправильно. Сначала проверьте следующее:
Убедитесь, что CORE_PEER_LISTENADDRESS настроен на прослушивание нужного порта в файлах docker-compose. Для peer0.org1.eaxmple.com -> 7051,
CORE_PEER_LISTENADDRESS=0.0.0.0:7051
, если Telnet работает -> Проверить профиль соединения, следующим образом. Если TLS включен, убедитесь, что сертификаты tls / файлы PEM переданы правильно, и для соединения установлено значение GRPCS (не GRPC)
Профиль соединения
[ 112] "peer0.org1.example.com": {
"url": "grpcs://192.168.128.171:7051",
"grpcOptions": {
"ssl-target-name-override": "peer0.org1.example.com",
"request-timeout": 120001
},
"tlsCACerts": {
"path": "crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp/tlscacerts/tlsca.org1.example.com-cert.pem"
}
},
Если никакие Идентификационные данные не будут вставлены, то SCOPE_IDENTITY () возвратит пустой указатель, можно проверить на условие, которое Вы указываете путем присвоения SCOPE_IDENTITY () к переменной и затем проверки содержания переменных.
Иллюстрация
Create Proc SomeInsertToFail(@ID int OUTPUT)
as
Begin
Select @ID = Scope_Identity()
End
Declare @SOMEID int
Exec SomeInsertToFail @SOMEID OUTPUT
Select @SOMEID --This will yield null
ПУСТОЙ УКАЗАТЕЛЬ
источник: сделал ВЫБОР scope_identity () на пустом запросе (иначе, никакие не вставляют),