Azure中托管的站点无法识别WebAPI方法

时间:2017-09-20 14:55:51

标签: c# asp.net-mvc azure asp.net-web-api

我正在与我们的报告供应商集成单点登录,该报告供应商通过从其API调用web api方法来验证令牌。当我使用本地托管的API从我的本地计算机上测试它时,我可以使用此web api方法,用户使用有效令牌进行验证,并且SSO可以顺利运行。当我将此更改发布到Azure时,不会调用此验证方法,SSO无法通过该方法工作。我缺少什么,或者我在Azure中的应用程序服务中需要做些什么来确保调用此Web API。确实看起来在Azure中发布时会跳过它,因为这在我的本地计算机上运行得非常好。

[RoutePrefix("api/reporting")]
public class ReportingAPIController : ApiController
{
    [HttpGet]
    [Route("validateVendorAuthToken")]
    public UserInfo ValidateVendorAuthToken(string access_token)
    {
        var userInfo = Infrastructure.ReportingVendor.TokenAuthorization.GetUserInfo(access_token);
        return userInfo;
    }
 }
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // TODO: Add any additional configuration code.

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "ActionApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

然后在我的global.asax中,

GlobalConfiguration.Configure(WebApiConfig.Register);

为了调用ValidateVendorAuthToken,我们在供应商的API SQL数据库中提供字段值以匹配此路由,例如http://mysite.azurewebsites.net/api/reporting/validateVendorAuthToken,然后生成令牌。

要在我的本地计算机上测试,我将此值更改为http://localhost:69808/api/reporting/validateVendorAuthToken

由于这在本地工作,我得出的结论是,当站点在Azure中托管时,永远不会调用此Web api方法。我在Azure中需要做些什么,或者我的应用程序中缺少一些东西?

非常感谢任何帮助或指示。

1 个答案:

答案 0 :(得分:0)

这是一个很长的镜头,但你的任何字段值是否包含日期?我有一个问题,我的本地机器上的测试很好,但是一旦我部署到azure它崩溃了,结果我的英国格式化日期被解释为一个月大于12并且轰炸没有太多线索。抱歉,如果没有浪费你的时间!