2011-12-27 43 views
0

在我的Facebook应用程序,我使用的是CanvasAction像这样:的Facebook C#SDK CanvasAction导致 “HTTP错误405.0 - 不允许的方法”

<div id="my-button" onclick="location.href='@Url.CanvasAction("Index", "Facebook")'"> 

应该调用上FacebookController Index方法:

[CanvasAuthorize(Permissions = ExtendedPermissions)] 
public ActionResult Index() 
{ 
    ..... 
} 

当前配置的应用程序,以便主机是本地主机。 这用于工作,但突然间的响应是“HTTP错误405.0 - 方法不允许”。 我已经改变了我的应用程序,因此,就我所知,它与FB C#SDK中包含的“ASP.NET MVC3 Canvas应用程序没有Facebook JavaScript”示例应用程序相同。

它的工作,虽然如果我追加“索引”的地址:http://apps.facebook.com/myapp/Facebook/Index/

回答

0

将Index操作方法中的代码移至新的操作方法,并相应地更新CanvasAction调用中的第一个参数,现在它可以工作。 因此,而不是这样的:

<div id="my-button" onclick="location.href='@Url.CanvasAction("Index", "Facebook")'"> 

[CanvasAuthorize(Permissions = ExtendedPermissions)] 
public ActionResult Index() 
{ 
    ..... 
    return View(); 
} 

这样的:

<div id="my-button" onclick="location.href='@Url.CanvasAction("PleaseWork", "Facebook")'"> 

[CanvasAuthorize(Permissions = ExtendedPermissions)] 
public ActionResult PleaseWork() 
{ 
    ..... 
    return View("Index"); 
} 

我真的不知道为什么它不工作索引方法。

0

听起来像一个奇怪的要求,但请检查您的网站,您的HTTPS版本是否正常工作。当SSL证书有问题时,我已经看过405。

+0

它不适用于https,因为我针对本地主机运行,而且我没有SSL证书。 – Christian

+0

您可能已将您的帐户设置为仅使用https,导致出现此问题。尝试关闭仅在用户帐户中使用https并重试。 – DMCS

+0

您的意思是在“帐户设置/安全/安全浏览”下设置“在可能的情况下在安全连接(https)上浏览Facebook”?“这已关闭。此外,示例画布应用程序正常工作使用相同的帐户,应该排除此选项。 – Christian

相关问题