3

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

  • VS 2010(用于更新的 WCF RIA 服务)
  • Silverlight 4.0(与 WCF RIA 服务一起打包)。
  • MVC 2
  • 英孚 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),我'也试过提琴手来获取一些信息,但没有运气。我真的在为此苦苦挣扎,我想知道是否有其他人遇到过这个问题并找到解决方法?

谢谢,丹尼斯

4

2 回答 2

5

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

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

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

于 2009-12-29T15:24:08.090 回答
1

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

当我使用 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 和服务请求的交互。这就是我所要做的

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

谢谢,丹尼斯

于 2010-09-13T20:15:37.503 回答