Asp.net mvc 2 Silverlight 4.0+;MVC 2.0+;WCF RIA服务+;EF 4.0=负载错误

Asp.net mvc 2 Silverlight 4.0+;MVC 2.0+;WCF RIA服务+;EF 4.0=负载错误,asp.net-mvc-2,silverlight-4.0,entity-framework-4,wcf-ria-services,Asp.net Mvc 2,Silverlight 4.0,Entity Framework 4,Wcf Ria Services,我正在尝试建立一个包含以下内容的站点: VS 2010(用于更新的WCF RIA服务) Silverlight 4.0(与WCF RIA服务打包) MVC2 EF4.0 我正在设置它,以便面向公众的页面将是来自MVC的html,但管理部分将是使用WCF RIA服务进行数据访问的silverlight导航应用程序 当我在webforms应用程序中创建silverlight应用程序时,它可以正常工作(我能够使用EF 4.0和WCF RIA服务成功地添加datagrid并检索数据): 在MVC2

我正在尝试建立一个包含以下内容的站点:

  • VS 2010(用于更新的WCF RIA服务)
  • Silverlight 4.0(与WCF RIA服务打包)
  • MVC2
  • EF4.0
我正在设置它,以便面向公众的页面将是来自MVC的html,但管理部分将是使用WCF RIA服务进行数据访问的silverlight导航应用程序

当我在webforms应用程序中创建silverlight应用程序时,它可以正常工作(我能够使用EF 4.0和WCF RIA服务成功地添加datagrid并检索数据):

在MVC2应用程序中创建silverlight应用程序时:

我得到如下错误(我在两种情况下都添加了相同的datagrid-一个包含2条记录的简单表):

webforms服务器端工作,而MVC服务器端不工作。我尝试过WCF日志记录和fiddler,但都没有成功,但不知何故,我无法获得任何输出(使用这里的示例:),我也尝试过fiddler获取一些信息,但运气不佳。我真的很挣扎,我想知道是否有其他人遇到了这个问题,并找到了解决办法


谢谢,当添加到Global.asax.cs时,Dennis忽略服务的路由更正了此问题:

routes.IgnoreRoute("{*allsvc}", new { allsvc = @".*\.svc(/.*)?" });

这个答案的功劳是:他的答案也解决了我的问题。

这个问题可能是我的网站特有的,但也许其他人也有同样的问题,我对此感到非常沮丧,以至于我放弃了一段时间,尝试了其他方法来完成我想做的事情,但是回到Silverlight,因为我很难使用Javascript和JS UI库。在部署的站点上工作时,我与fiddler的关系更好(在使用开发服务器时,我没有得到任何输出)

当我使用silverlight应用程序浏览我的站点时,弹出了一个对话框,通常是“查询加载操作失败…”,fiddler在突出显示错误时显示了以下内容:

IIS指定的身份验证方案为“基本、匿名”,但绑定仅支持指定一个身份验证方案。有效的身份验证方案有摘要、协商、NTLM、基本或匿名。更改IIS设置,以便仅使用单个身份验证方案

我在DiscountASP.net(我的托管提供商)中查找了此错误,发现一篇KB文章指示我更新web.config(针对IIS7),如下所示:

<system.webServer>
  <security>
    <authentication>
      <basicAuthentication enabled="false" />
    </authentication>
  </security>
</system.webServer>

还有维奥拉!我可以在asp.net MVC2中将WCF RIA服务与Silverlight一起使用!我还发现,在研究这些内容时,我没有必要创建一些博客文章中描述的特殊服务和domainhostfactory,也没有必要更改路由以避免与MVC和服务请求的交互。这就是我要做的一切

我想这是一个非常基本的修复,希望它能帮助其他人。我对此感到非常失望,并对这样一个简单的修复方案公开表示失望,但Microsoft没有提供此方案的详细说明,因为它使用的是最新的Microsoft技术


谢谢,Dennis

对于丢失的图片感到抱歉,我放置它们的网站已不再在线。此解决方案已停止与SL4和WCF RIA服务的最终版本一起使用。非常感谢,Dennis。我的主机提供商还提供了启用集成Windows身份验证的选项。确保也将其设置为False!