远程服务器返回错误:NotFound

发布于 2024-09-30 13:00:59 字数 6044 浏览 0 评论 0原文

我正在为 Silverlight 使用 MVVM 模式。

我有这些项目:

MVVMDemo.Data(Ria 服务链接设置为 MVVMDemo.Data.Web) MVVMDemo.Data.Web(包含所有 RIA 服务) MVVMDemo.Data.ViewModels MVVMDemo.Data.Models MVVMDemo(包含所有视图) MVVMDemo.Data.Common(包含所有接口)

这是我的 RIA 服务类:

namespace MVVMDemo.Data.Web
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data;
    using System.Linq;
    using System.ServiceModel.DomainServices.EntityFramework;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;



    [EnableClientAccess()]
    public class UserServices : LinqToEntitiesDomainService<IssueVisionEntities>
    {

        public IQueryable<User> GetUsersByLimit(int skip , int take)
        {
            return this.ObjectContext.Users.Skip(skip).Take(take);
        }

        public IQueryable<User> GetUsers()
        {
            return this.ObjectContext.Users;
        }

        public void InsertUser(User user)
        {
            if ((user.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(user, EntityState.Added);
            }
            else
            {
                this.ObjectContext.Users.AddObject(user);
            }
        }

        public void UpdateUser(User currentUser)
        {
            this.ObjectContext.Users.AttachAsModified(currentUser, this.ChangeSet.GetOriginal(currentUser));
        }

        public void DeleteUser(User user)
        {
            if ((user.EntityState == EntityState.Detached))
            {
                this.ObjectContext.Users.Attach(user);
            }
            this.ObjectContext.Users.DeleteObject(user);
        }
    }
}

这是我调用 RIA 服务的模型:-

namespace MVVMDemo.Models
{
    [Export(typeof(IUserModel))]
    public class UserModel : IUserModel
    {
        private const int PAGESIZE = 10;
        private int skip = 0;


        private UserServices _context;
        private UserServices Context
        {
            get
            {
                if (_context == null)
                {
                    _context = new UserServices();
                }
                return _context;
            }
        }

        public void GetAllUsersAysnc()
        {
            PerformQuery<User>(Context.GetUsersQuery(), GetAllUsersAsyncComplete);
        }

        private void PerformQuery<T>(EntityQuery<T> query , EventHandler<EntityResultArgs<T>> eventHandler) where T:Entity
        {
            this.Context.Load<T>(query, LoadBehavior.RefreshCurrent, r =>
            {
                if (eventHandler != null)
                {
                    try
                    {
                        if (r.HasError)
                        {
                            eventHandler(this, new EntityResultArgs<T>(r.Error));
                            r.MarkErrorAsHandled();
                        }
                        else
                            eventHandler(this, new EntityResultArgs<T>(r.Entities));
                    }
                    catch (Exception ex)
                    {
                        eventHandler(this, new EntityResultArgs<T>(ex));
                    }

                }
            },null);
        }

        public event EventHandler<EntityResultArgs<Data.Web.User>> GetAllUsersAsyncComplete;

        public void GetAllUsersByLimit()
        {
            PerformQuery<User>(Context.GetUsersByLimitQuery(skip,PAGESIZE), GetAllUsersByLimitAsyncComplete);
        }

        public event EventHandler<EntityResultArgs<Data.Web.User>> GetAllUsersByLimitAsyncComplete;
    }

每当我运行方法 GetAllUsersAysnc 时,我总是收到此错误:-

http://img408.imageshack.us/img408/6150/62968542.jpg

这是我在 MVVMDemo.Data.Web 中的 app.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="DomainServiceModule" preCondition="managedHandler"
        type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </modules>
    <validation validateIntegratedModeConfiguration="false" />

  </system.webServer>
  <connectionStrings>
    <add name="IssueVisionEntities" connectionString="metadata=res://*/IssueVisionModel.csdl|res://*/IssueVisionModel.ssdl|res://*/IssueVisionModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=TAPESH\MSSQLSERVER2008;Initial Catalog=IssueVision;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
      multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

  <system.web>    
    <httpModules>
      <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </httpModules>
  </system.web>


</configuration>

这是我托管 silverlight 应用程序的 Asp.Net 网站的 web.config

<?xml version="1.0"?>

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />

    </system.web>

</configuration>

我不知道发生了什么,我是 RIA 服务的初学者。

I am using MVVM pattern for Silverlight.

I have these projects:

MVVMDemo.Data (Ria services link set to MVVMDemo.Data.Web)
MVVMDemo.Data.Web (Contains all RIA services) MVVMDemo.Data.ViewModels
MVVMDemo.Data.Models MVVMDemo (contains all views)
MVVMDemo.Data.Common (contains all interfaces)

This is my RIA services class:

namespace MVVMDemo.Data.Web
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data;
    using System.Linq;
    using System.ServiceModel.DomainServices.EntityFramework;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;



    [EnableClientAccess()]
    public class UserServices : LinqToEntitiesDomainService<IssueVisionEntities>
    {

        public IQueryable<User> GetUsersByLimit(int skip , int take)
        {
            return this.ObjectContext.Users.Skip(skip).Take(take);
        }

        public IQueryable<User> GetUsers()
        {
            return this.ObjectContext.Users;
        }

        public void InsertUser(User user)
        {
            if ((user.EntityState != EntityState.Detached))
            {
                this.ObjectContext.ObjectStateManager.ChangeObjectState(user, EntityState.Added);
            }
            else
            {
                this.ObjectContext.Users.AddObject(user);
            }
        }

        public void UpdateUser(User currentUser)
        {
            this.ObjectContext.Users.AttachAsModified(currentUser, this.ChangeSet.GetOriginal(currentUser));
        }

        public void DeleteUser(User user)
        {
            if ((user.EntityState == EntityState.Detached))
            {
                this.ObjectContext.Users.Attach(user);
            }
            this.ObjectContext.Users.DeleteObject(user);
        }
    }
}

This is my model which calls RIA services :-

namespace MVVMDemo.Models
{
    [Export(typeof(IUserModel))]
    public class UserModel : IUserModel
    {
        private const int PAGESIZE = 10;
        private int skip = 0;


        private UserServices _context;
        private UserServices Context
        {
            get
            {
                if (_context == null)
                {
                    _context = new UserServices();
                }
                return _context;
            }
        }

        public void GetAllUsersAysnc()
        {
            PerformQuery<User>(Context.GetUsersQuery(), GetAllUsersAsyncComplete);
        }

        private void PerformQuery<T>(EntityQuery<T> query , EventHandler<EntityResultArgs<T>> eventHandler) where T:Entity
        {
            this.Context.Load<T>(query, LoadBehavior.RefreshCurrent, r =>
            {
                if (eventHandler != null)
                {
                    try
                    {
                        if (r.HasError)
                        {
                            eventHandler(this, new EntityResultArgs<T>(r.Error));
                            r.MarkErrorAsHandled();
                        }
                        else
                            eventHandler(this, new EntityResultArgs<T>(r.Entities));
                    }
                    catch (Exception ex)
                    {
                        eventHandler(this, new EntityResultArgs<T>(ex));
                    }

                }
            },null);
        }

        public event EventHandler<EntityResultArgs<Data.Web.User>> GetAllUsersAsyncComplete;

        public void GetAllUsersByLimit()
        {
            PerformQuery<User>(Context.GetUsersByLimitQuery(skip,PAGESIZE), GetAllUsersByLimitAsyncComplete);
        }

        public event EventHandler<EntityResultArgs<Data.Web.User>> GetAllUsersByLimitAsyncComplete;
    }

Whenever i run the method GetAllUsersAysnc i always get this error :-

http://img408.imageshack.us/img408/6150/62968542.jpg

This is my app.config in MVVMDemo.Data.Web

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="DomainServiceModule" preCondition="managedHandler"
        type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </modules>
    <validation validateIntegratedModeConfiguration="false" />

  </system.webServer>
  <connectionStrings>
    <add name="IssueVisionEntities" connectionString="metadata=res://*/IssueVisionModel.csdl|res://*/IssueVisionModel.ssdl|res://*/IssueVisionModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=TAPESH\MSSQLSERVER2008;Initial Catalog=IssueVision;Integrated Security=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
      multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

  <system.web>    
    <httpModules>
      <add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </httpModules>
  </system.web>


</configuration>

And this is my web.config of Asp.Net website which is hosting the silverlight application

<?xml version="1.0"?>

<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />

    </system.web>

</configuration>

I have no idea what is happening and I am a beginner in RIA services.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文