我已经实施了Azure移动应用和Xamarin.Forms客户端应用。我希望用户使用来自手机的Facebook登录,并且还想获取用户的个人资料数据。为此,我已将附加调用/方法实现到Azure移动应用程序中的API控制器中。我按照你的文章按照步骤并放置代码,但当我在localhost上运行移动应用程序或尝试发布时,不知何故得到以下错误消息
发现多个类型与名为“Home”的控制器匹配。如果为此请求提供服务的路由('')发现多个控制器定义了相同名称但名称不同的命名空间(不受支持),则会发生这种情况。对'Home'的请求找到了以下匹配的控制器:
Microsoft.Azure.Mobile.Server.Controllers.HomeController Microsoft.WindowsAzure.Mobile.Service.Controllers.HomeController
我理解这是相关的配置设置。我有以下代码
HttpConfiguration config = new HttpConfiguration();
new MobileAppConfiguration()
.UseDefaultConfiguration()
.ApplyTo(config);
app.UseWebApi(config);
app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions
{
SigningKey = ConfigurationManager.AppSettings["SigningKey"],
ValidAudiences = new[] { ConfigurationManager.AppSettings["ValidAudience"] },
ValidIssuers = new[] { ConfigurationManager.AppSettings["ValidIssuer"] },
TokenHandler = config.GetAppServiceTokenHandler()
});
如果我从上面删除默认配置,那么异常消息就会消失但是在这种情况下我没有看到应用程序正确托管,即它在浏览器中显示空白页面而不是在应用程序正确托管后显示的就绪页面。 / p>
答案 0 :(得分:0)
您遵循了哪些步骤,请您显示链接? 该例外与路由相关并且非常常见,并且可以修复 - 例如,通过使用区域。有很多手册可供选择,例如,http://blog.falafel.com/duplicate-controller-names-aspnet-mvc-areas/。
答案 1 :(得分:0)
您添加了两个不同的SDK - 一个用于Azure移动服务v1,另一个用于Azure应用服务移动应用(可以视为v2)。您需要删除旧版本的引用。
使用适用于您正在使用的服务的SDK,并删除另一个。