C# Flask webservice赢得';无法接收外部消息
我的情况: 本地计算机上的Python Web服务:C# Flask webservice赢得';无法接收外部消息,c#,python,azure,flask,C#,Python,Azure,Flask,我的情况: 本地计算机上的Python Web服务: 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
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')
Azure云中的C#Web服务:
public static async Task SendSubscriptionAsync(string deviceName)
{
var client = new RestClient();
client.BaseUrl = new Uri("http://{IP adress}:5000");
var request = new RestRequest(Method.POST);
request.Resource = "subscribe";
request.AddParameter("deviceName", deviceName, ParameterType.QueryString);
IRestResponse response = await client.ExecuteTaskAsync(request);
var content = response.Content;
}
当我在本地运行C#webservice时,pythonwebservice接收消息
但是当我从Azure云运行C#webservice时,Python webservice不会接收消息
我读过这本书。
Python为什么不接收外部消息?根据我的理解,您希望从Azure上的C#客户端请求本地的Flask服务 根据我的经验,简单的方法是为本地路由器配置端口转发和ADSL动态IP的动态DNS,然后C#客户端可以使用路由器的指定WAN端口访问域名 如果您的路由器不支持这些功能,我认为您可以尝试使用Azure服务总线在本地Flask服务和云C#服务之间创建通信 其原理是创建一对服务总线队列,用于在两个服务之间发送和接收,如下所示
- 云C#服务将JSON消息作为请求发送到队列1,然后本地Flask服务通过轮询接收JSON消息,并将消息解析为用于工作的参数 本地烧瓶服务云C#服务