Silverlight 4,WCF RIA Services生成的代码不完整

时间:2010-07-01 14:30:50

标签: silverlight wcf-ria-services

  • 我开始使用Silverlight业务应用程序模板
    • 我将调用此MyApp和MyApp.Web
  • 我添加了一个新的SL应用程序项目。
  • 并添加了一个指向现有Web项目的ria链接。
    • 我会称这个装载机

这个新的SL应用程序是我的解决方案的入口点,基本上从其他xap文件加载主页。检查更新等。

  • 我从MyApp
  • 中删除了App.xaml和App.xs文件
  • 因为Loader现在是应用程序
    • 我将相关代码从MyApp - App.cs复制到Loader - App.cs
    • 我将相关代码从MyApp - App.xaml添加到Loader - App.xaml
    • 这主要是WebContext的内容。

问题是 Loader 的RIA Services 生成代码与 MyApp

的代码代码不同

MyApp的生成代码包含以下命名空间:

  • MyApp的
  • MyApp.Web
  • MyApp.Web.Models
  • MyApp.Web.Services

Loader生成的代码包含命名空间:

  • 装载机

Loader中的以下代码行 - App.cs抛出 InvalidOperationException

WebContext.Current.Authentication.LoadUser(this.Application_UserLoaded, null);

异常的错误消息是:

  

DomainContextType为null或无效且没有从AuthenticationBase<T>

生成的上下文

1 个答案:

答案 0 :(得分:2)

今天我遇到了同样的问题(有类似的设置)。仔细观察后,我发现this post on the silverlight forums有答案(查看解决方案的底部,因为RIA服务中有一些API更改)。

长话短说,问题是您的WebContext无法找到在您的情况下处理AuthenticationContext的DomainContext(在本例中为LoadUser)。要解决此问题,您需要将以下内容添加到App.xaml

<Application.ApplicationLifetimeObjects>
    <dmnsvc:WebContext>
        <dmnsvc:WebContext.Authentication>
            <appsvc:FormsAuthentication>
                <appsvc:FormsAuthentication.DomainContext>
                    <!--Your AuthenticationContext here-->
                </appsvc:FormsAuthentication.DomainContext>
            </appsvc:FormsAuthentication>
        </dmnsvc:WebContext.Authentication>
    </dmnsvc:WebContext>
</Application.ApplicationLifetimeObjects>

希望这会有所帮助:)