每次WCF休息的插入操作失败....

时间:2012-05-06 02:44:12

标签: c# asp.net wcf-rest

您好我在我的应用程序中使用WCF Rest,具有分层架构。我的数据流层次结构如下:

Data Layer -> Linq2Sql
||
Business Layer
||
WCF Rest Service
||
ASPX Pages

我使用JSON通过JQuery选择/删除和代码隐藏到插入/更新,这样我就可以通过我的业务层将.Net对象传递给数据库库(以检查我是否有业务逻辑)。使用WCF servive。

例如,我正在加密密码并在我的业务层中解密密码并将其发送到datalayer.Anyways,这不是问题。问题在于WCF服务配置设置。每当我得到如下的独特例外:

  1. 404错误请求。
  2. http://localhost/Service.svc没有可以接受该消息的端点。
  3. 无法在服务模型客户端配置部分中找到引用合同“xxx”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素 等等....
  4. 我尝试的是

    1. 根据Tom Haigh建议的答案。 受保护的Save_Click(发件人,e) {

      var user = new User                        {                            Login = login.Value,                            密码= pwd.Value,                            RealName = realname.Value,                            AccessRight = accessrights.Value,                            CustomAccesRight = customaccessrights.Value                        };

          var remoteAddress = new EndpointAddress("http://localhost:2360/UserService.svc");
      
          using (var client = new UserServiceClient(new BasicHttpBinding(), remoteAddress))
          {
              //set timeout
              client.Endpoint.Binding.SendTimeout = new TimeSpan(0, 0, 0, 10000);
      
              //call ws method
              client.Insert(user);
          } //using
      
    2. }

      1. 我使用了一个尝试删除了,得到了错误400

        受保护的Save_Click(发件人,e) {

        var user = new User                        {                            Login = login.Value,                            密码= pwd.Value,                            RealName = realname.Value,                            AccessRight = accessrights.Value,                            CustomAccesRight = customaccessrights.Value                        };

            var remoteAddress = new EndpointAddress("http://localhost:2360/UserService.svc");
        
           var client = new UserServiceClient(new BasicHttpBinding(), remoteAddress);
        
                //set timeout
                client.Endpoint.Binding.SendTimeout = new TimeSpan(0, 0, 0, 10000);
        
                //call ws method
                client.Insert(user);
        
      2. }

        我的服务配置文件:

        <system.serviceModel>
            <services>
              <service name="EnergyManagementControl.WcfSvc.UserService"  behaviorConfiguration="ServiceBehaviour" >
                <endpoint name="" binding="webHttpBinding"   contract="EnergyManagementControl.WcfSvc.IUserService" address="http://localhost:2360/UserService.Svc"   behaviorConfiguration="web"></endpoint>
              </service>
            </services>
            <behaviors>
              <serviceBehaviors>
                <behavior name="ServiceBehaviour"  >
                  <serviceMetadata  httpGetEnabled="True"/>
                  <serviceDebug includeExceptionDetailInFaults="true"/>
                </behavior>
              </serviceBehaviors>
              <endpointBehaviors>
                <behavior name="web">
                  <webHttp/>
                </behavior>
              </endpointBehaviors>
            </behaviors>
          </system.serviceModel>
        

        我的客户端配置文件

        <system.serviceModel>
            <client>
              <endpoint
                name = "Receptor"
                 address="http://localhost:2360/UserService.Svc" 
                binding = "wsHttpBinding"
                contract="IUserService"
            />
            </client>
          </system.serviceModel>
        

        但似乎没有任何帮助。我知道它的配置错误,请帮帮我。根据我的场景,任何有关WCF休息的简短参考都会有很大的帮助.....

        请不要将WCF创建为WCF服务应用程序,而是使用我的Web应用程序在我的解决方案中的项目。请参见下图:enter image description here

        我在WebDev服务器上收到错误,而不是在IIS或Cassini上

1 个答案:

答案 0 :(得分:0)

对于REST服务的WCF使用情况,我不能说太多,但是您的服务&amp;客户端端点绑定不匹配。 WCF使用绑定来查找匹配的端点。