【问题标题】:Silverlight 4.0 + MVC 2.0 + WCF RIA Services + EF 4.0 = Load ErrorSilverlight 4.0 + MVC 2.0 + WCF RIA 服务 + EF 4.0 = 加载错误
【发布时间】:2010-12-30 08:58:45
【问题描述】:

我正在尝试使用以下内容构建网站:

  • VS 2010(用于更新的 WCF RIA 服务)
  • Silverlight 4.0(与 WCF RIA 服务打包在一起)。
  • MVC 2
  • EF 4.0

我正在设置它,以便面向公众的页面将是来自 MVC 的 html,但管理部分将是一个使用 WCF RIA 服务进行数据访问的 Silverlight 导航应用程序。

当我在 webforms 应用程序中创建 silverlight 应用程序时,它可以工作(我能够添加数据网格并成功使用 EF 4.0 和 WCF RIA 服务检索数据): alt text http://www.patleague.com/images/sl4_webforms.png

当我在 MVC2 应用程序中创建 silverlight 应用程序时: alt text http://www.patleague.com/images/sl4_mvc2.png

我收到如下错误(我在两种情况下都添加了相同的数据网格 - 一个包含 2 条记录的简单表): alt text http://www.patleague.com/images/sl4_mvc_dataerr.png

Webforms 服务器端工作,而 MVC 服务器端不工作。我没有成功地尝试过 WCF 日志记录以及提琴手,但我无法获得任何输出(使用此处的示例:http://msdn.microsoft.com/en-us/library/ms730064.aspx),我也尝试过提琴手来获取一些信息,但没有运气。我真的在为此苦苦挣扎,我想知道是否有其他人遇到过这个问题并找到解决方法?

谢谢,丹尼斯

【问题讨论】:

  • 抱歉图片丢失,我放的那个网站已经不在线了。

标签: asp.net-mvc-2 silverlight-4.0 entity-framework-4 wcf-ria-services


【解决方案1】:

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

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

IIS 指定身份验证方案“基本、匿名”,但绑定仅支持指定一个身份验证方案。有效的身份验证方案是 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 一起使用!我还发现,在研究这些东西时,我没有必要像几篇博客文章中描述的那样创建一个特殊的服务和一个 domainhostfactory,或者更改路由以避免与 MVC 和服务请求的交互。这就是我所要做的一切

我想这是一个非常基本的修复,希望它可以帮助其他人。我对此感到非常沮丧,并且对公开提供这样一个简单的修复程序感到失望,但 Microsoft 没有针对这种情况提供分步说明,因为它使用的是最新的 Microsoft 技术。

谢谢,丹尼斯

【讨论】:

  • 非常感谢,丹尼斯。我的主机提供商还有一个启用集成 Windows 身份验证的选项。确保也设置为 False!
【解决方案2】:

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

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

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

【讨论】:

  • 此解决方案停止使用 SL4 和 WCF RIA 服务的最终版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多