昨天,Microsoft Translator服务在工作一天的大部分时间后开始从API返回502错误。我们这边没有代码变更。现在已经停了12个多小时了。
Microsoft有一个测试网站(https://datamarket.azure.com/dataset/explore/bing/microsofttranslator)也会返回错误,因此我非常有信心这不是我们的代码。网站返回的错误是:
The request resulted in a backend time out or backend error. The team
is investigating the issue. We are sorry for the inconvenience. (502)
支持网站太可怕了,所以我的电子邮件不会发送给任何人。我尝试过来自两个不同帐户的有效密钥,但仍然收到错误。还有其他人有这个问题??
答案 0 :(得分:1)
我们也有这个问题。看来翻译的v1已经停止(或者已经停止服务)。但是,API的v2可以工作。
我猜您使用的身份验证形式只需要您的MS数据市场帐户密钥(在此处找到:https://datamarket.azure.com/account/keys)。
使用这种形式的身份验证,您可以使用类似于以下内容的代码进行翻译:
Microsoft.TranslatorContainer xlator = new Microsoft.TranslatorContainer("https://api.datamarket.azure.com/Bing/MicrosoftTranslator/v1/Translate");
xlator.Credentials = new NetworkCredential("account key, "account key");
DataServiceQuery<Microsoft.Translation> xlateQry = xlator.Translate("translate me", "en", "fr");
Microsoft.Translation xlateResult = xlateQry.Execute().First();
translateOutput = xlateResult.Text;
Microsoft命名空间内的TranslatorContainer和Translation类来自MS提供的第一版译文的生成代码。
这就是我们所做的,它也为我们昨天放弃了工作。似乎MS强行(并秘密地AFAIK)停止了这种形式的身份验证,转而支持他们的新身份验证方案和API。值得注意的是,当您从MS翻译API主页导航时,您无法再访问API的v1文档。
但是,我能够按照这些URL上的API v2说明,使用我现有的帐户成功创建ad-hoc HTTP转换请求:
查看“获取访问令牌”时,请转到特定URL的底部PowerShell示例,并记住使用POST获取身份验证令牌并获取转换请求的GET。还要记住使用url编码的参数进行身份验证令牌请求。我只是这样说,因为在使用Chrome中的PostMan来处理临时请求时,这些是让我惹恼的事情。
很可能这个转换有很好的记录,但对于像我这样继承使用翻译API v1的应用程序的一些糟糕的傻瓜,它确实看起来像MS只是让所有人在寒冷中使用v1,因为在浏览翻译API文档时,即使有两个版本,更不用说将停止使用它。