Dil*_*ena 5 azure azure-mobile-services asp.net-web-api2
所以我正在使用azure移动服务后端来尝试制作自定义API.但是我似乎无法从客户端连接到模板表.使用模板创建新的Azure移动服务时,它们会为您提供values
类似于此格式的API控制器
[MobileAppController]
public class ValuesController : ApiController
{
// GET api/values
[Route("api/values")]
public string Get()
{
return "test";
}
}
Run Code Online (Sandbox Code Playgroud)
从客户端我试图像这样调用这个端点
var result = mobileService.InvokeApiAsync<string>("values", HttpMethod.Get, null).Result;
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我一直得到这个例外
{"The request could not be completed. (Bad Request)"}
{Method: GET, RequestUri: 'http://localhost:58457/api/values', Version: 1.1, Content: <null>, Headers:
{
X-ZUMO-FEATURES: AT
X-ZUMO-INSTALLATION-ID: b04f4e19-4f41-46ed-9767-9c1352037559
Accept: application/json
User-Agent: ZUMO/1.3
User-Agent: (lang=Managed; os=Windows; os_version=6.1.65536.7601; arch=Win32NT; version=1.3.30324.0)
X-ZUMO-VERSION: ZUMO/1.3 (lang=Managed; os=Windows; os_version=6.1.65536.7601; arch=Win32NT; version=1.3.30324.0)
}}
这也只是模板,所以在我启动并运行任何自定义端点之前,我需要这个工作.关于问题可能是什么的任何想法?
Ram*_*ine 12
您可以通过为应用程序设置MS_SkipVersionCheck设置值true来选择退出版本检查.在web.config或Azure门户的"应用程序设置"部分中指定此项.
ms_skipversion在门户网站中检查为true.
你说的是移动服务,但你使用的控制器是MobileAppController。
这表明您实际上正在使用移动应用程序。如果您查看服务器项目的packages.config,您可能会看到类似的内容。
<package id="Microsoft.Azure.Mobile.Server" version="1.0.119.0" targetFramework="net45" />
Run Code Online (Sandbox Code Playgroud)
我怀疑您收到的 400 是因为您使用的移动客户端版本低于 2.0.0。
在您的客户端项目包配置中,尝试使用较新的客户端版本,例如:
<package id="Microsoft.Azure.Mobile.Client" version="2.0.1" targetFramework="win81" />
Run Code Online (Sandbox Code Playgroud)
您还应该检查 400 响应的正文以获取明确的错误消息。我希望它会说这样的话:
{"message":"No API version was specified in the request, this request needs to specify a ZUMO-API-VERSION of '2.0.0'. For more information and supported clients see: http://go.microsoft.com/fwlink/?LinkId=690568#2.0.0"}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3090 次 |
最近记录: |