最近在搞一我的脸识别的功能,使用了微软的认知服务,一下讲一个我遇到的小问题。api
首先添加相关相应的NuGet:Microsoft.ProjectOxford.Faceblog
而后构造FaceServiceClient并调用DetectAsync方法识别人脸信息。ip
构造FaceServiceClient须要一个key,以前公司申请好了,过程没什么问题。以后因为使用的是免费的API,调用次数受到限制,打算本身再申请一个帐户,过程麻烦的一B,实名制以及上传身份证等,,,开发
最后固然仍是搞定了并拿到了Key,然而神奇的事情发生了,更换了新key后代码不工做了,,,报异常以下:文档
因为对Azure不懂,觉得本身哪里没有设置好,也就没管了,直到今天微软给电话回访,嘿嘿,固然不能放弃解决问题的机会get
过程不罗嗦,最后发现我以前使用的是public FaceServiceClient(string subscriptionKey);来构造FaceServiceClient,那么另一个构造public FaceServiceClient(string subscriptionKey, string apiRoot);跟这个有啥区别呢?string
技术支持如此答道:若是不添加https://api.cognitive.azure.cn/face/v1.0 (apiRoot参数)默认访问的是global 版本。it
搜嘎,原来是我本身申请的是中国区的认知服务,公司那个key是国际版的,而中国区就须要指定apiRoot参数。。。io
能够参考连接:https://docs.azure.cn/zh-cn/articles/intelligence-analytics/aog-cognitive-services-qa-csharp-sdk-key-invalid sdk
然而我想说我开发时没找到这两个重载的区别,F12过去没有注释,官网里找文档和API也没有说明(难道是我没找到?!)
记录一下,但愿能帮到别人。