我的情况:
本地机器上的Python webservice:
@annotate_overrides
class Rectangle(Shape):
@override
def area(self):
return self.height * self.width
Azure Cloud中的C#webservice:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/subscribe', methods=['POST'])
def subscribe():
//Do webservice work...
return "completed"
if __name__ == '__main__':
app.run(host='0.0.0.0')
当我运行C#webservice local时,Python webservice会收到消息。
但是当我从Azure Cloud运行C#webservice时,Python Web服务不会收到消息。
我已阅读Flask Quickstart manuel。 为什么Python不会收到外部消息?
答案 0 :(得分:0)
根据我的理解,您希望从Azure上的C#客户端请求本地的Flask服务。
根据我的经验,简单的方法是使用端口转发配置本地路由器,并为ADSL动态IP配置动态DNS,然后C#客户端可以使用路由器的指定WAN端口访问域名。
如果您的路由器不支持这些功能,我认为您可以尝试使用Azure Service Bus在本地Flask服务和云C#服务之间建立通信。
原则是创建一对Service Bus Queue,用于在两个服务之间发送和接收。
Cloud C#服务将JSON消息作为请求发送到队列1,然后本地Flask服务通过轮询接收JSON消息,并将消息解析为参数以便工作。
本地Flask服务< ------队列1< -------云C#服务
本地Flask服务将完成的结果作为消息发送到队列2,然后云C#服务通过轮询接收结果消息。
本地烧瓶服务------>队列2 ------->云C#服务