Silverlight 4.0 + MVC 2.0 + WCF RIA Services + EF 4.0 = 载入错误

3
我正在尝试构建一个以下内容的网站:
  • VS 2010(用于更新的WCF RIA服务)
  • Silverlight 4.0(与WCF RIA服务一起打包)。
  • MVC 2
  • EF 4.0
我正在设置这样一个站点,使得公共页面是MVC中的html,而管理部分将是使用WCF RIA服务进行数据访问的Silverlight导航应用程序。
当我在WebForms应用程序中创建Silverlight应用程序时,它可以正常工作(我能够成功添加datagrid并使用EF 4.0和WCF RIA Services检索数据): alt text http://www.patleague.com/images/sl4_webforms.png 当我在MVC2应用程序中创建Silverlight应用程序时: alt text http://www.patleague.com/images/sl4_mvc2.png 我遇到了以下错误(我在两种情况下都添加了相同的datagrid - 一个带有2条记录的简单表格): alt text http://www.patleague.com/images/sl4_mvc_dataerr.png Webforms服务器端可以工作,而MVC服务器端不行。我尝试使用WCF日志记录以及Fiddler,但是我无法获得任何输出(使用此处的示例:http://msdn.microsoft.com/en-us/library/ms730064.aspx),我还尝试了使用Fiddler获取一些信息,但没有成功。我真的很苦恼,想知道是否有其他人遇到过这个问题,并找到了解决方法?
谢谢,Dennis

抱歉,由于我放置图片的网站已经下线,所以图片丢失了。 - Dennis Ward
2个回答

5

将服务路由忽略掉可以解决这个问题,当它添加至Global.asax.cs时:

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

这个答案的功劳要归功于OneSmartGuy:他的回答也解决了我的问题。

这个解决方案在SL4和WCF RIA Services的最终版本中停止工作了。 - Dennis Ward

1
这个问题可能只与我的网站有关,但也许其他人也遇到了同样的问题。我曾经因为这个问题非常沮丧,一度放弃使用Silverlight尝试其他方法来完成我想要的功能,但最终还是回到了Silverlight,因为我对JavaScript和JS UI库不太熟悉。在部署的网站上使用Fiddler时,我比在开发服务器上工作时更加顺利。
当我使用Silverlight应用程序浏览我的网站时,对话框弹出并显示“查询加载操作失败...”,而Fiddler在突出显示错误时显示以下内容:
IIS指定身份验证方案“Basic,Anonymous”,但绑定仅支持精确指定一个身份验证方案。有效的身份验证方案包括Digest、Negotiate、NTLM、Basic或Anonymous。更改IIS设置,以便仅使用单个身份验证方案。
我在DiscountASP.net(我的托管提供商)中查找了这个错误,并找到了一篇KB文章,指示我按照以下方式更新web.config(适用于IIS7):
<system.webServer>
  <security>
    <authentication>
      <basicAuthentication enabled="false" />
    </authentication>
  </security>
</system.webServer>

哇!我可以在asp.net MVC2中使用WCF RIA服务与Silverlight了!我发现,在研究这些东西时,我不需要像几篇博客文章中描述的那样创建特殊的服务和域主机工厂,也不需要更改路由以避免与MVC和服务请求的交互。这就是我所要做的。

我想这是一个相当基本的修复方法,希望它能帮助其他人。我对此感到非常沮丧,并且很失望微软没有提供针对这种情况的逐步说明,因为这是使用最新的微软技术。

谢谢,Dennis


非常感谢,Dennis。我的主机提供商也有启用集成Windows身份验证的选项。确保它也设置为False! - Carson Herrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接