【发布时间】:2021-06-08 16:54:20
【问题描述】:
我已经自托管了一个带有 net.tcp 绑定控制台应用程序的 .NET framework 4.x 版本的 WCF,它在 Azure k8s contianer 中运行,作为自托管的 wcf 服务
公开为net.tcp://CONTAINERIP:5000/WCFServiceName
并且端口 5000 通过 Loadbalancer 类型的入口服务公开
因此客户端将访问此服务,如下所示
net.tcp://LoadBalancerIP:5000/containerAppName/WCFServiceName
但使用负载均衡器 ip 不会将请求转发到容器 - 出现错误。
'在 net.tcp://LoadBalancerIp:5000/ContainerAppName/WCFServiceName 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。'
LB Yaml
spec:
clusterIP: IP.ADDRESS.OF.CLUSTER
externalTrafficPolicy: Cluster
ports:
- name: nettcp
nodePort: 30412
port: 5000
protocol: TCP
targetPort: 5000
selector:
app: CONTAINERAPPNAME
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer:
ingress:
- ip: LB.PUBLIC.IP.ADDRESS
有什么想法或建议吗??
【问题讨论】:
-
我建议发布负载均衡器 yaml。
-
@mmking 添加了 lb yaml
-
这个WCF服务可以正常访问吗?我的意思是WCF能否正常运行。
-
是的,我确实尝试在容器内调用容器 IP 主机 URL - 我可以创建代理通道以在容器内使用它。但是当尝试使用负载均衡器 IP 创建代理时,它无法获得肥皂动作
-
那么这应该是 Kuberenetes 问题。
标签: azure kubernetes azure-aks wcf-binding nettcpbinding