我使用webapi2.2构建了一个API。
当我将API部署到Azure时,我收到服务不健康消息...当我检查API的日志时,日志会显示错误消息
"启动捆绑失败:执行' WebApiConfig.Register'引起了 例外:'参数计数不匹配。'。
应用程序启动功能在
下面protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
我的WebApiConfig.cs有以下内容:
public static void Register(HttpConfiguration config)
{
config.EnableCors();
config.Formatters.JsonFormatter.
SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));.......
这里的另一个问题:api实现了自己的安全机制(我使用以下作为参考http://bitoftech.net/2014/12/15/secure-asp-net-web-api-using-api-key-authentication-hmac-authentication/)。此实现是否适用于Azure,或者您是否必须使用x-zumo标头授权机制?
答案 0 :(得分:0)
我找到了解决方法 - 我认为问题是由于我在Azure帐户中运行了另一个移动服务应用程序。该应用程序是在前一段时间 - 2015年初建立的,并且使用了没有参数的注册过程
public static void Register(){.....}
我认为这可能会混淆服务操作(一个应用程序有一个没有参数的寄存器而另一个有一个带有一个参数的寄存器)。要解决我的新应用程序的问题,我删除了config参数,并在注册函数中构建配置设置,见下文
public static void Register()
{
ConfigOptions options = new ConfigOptions();
HttpConfiguration config = ServiceConfig.Initialize(new ConfigBuilder(options));
config.EnableCors();.....
请记住,您需要访问使用Microsoft.WindowsAzure.Mobile.Service命名空间...这可以通过安装nuget包来获得WindowsAzure.MobileServices.Backend
希望这可以帮助有类似问题的人