4

我有ASDService.svc

 namespace StatusSimulator
 {
      [ServiceContract]
      public class ASDService
      {
           [OperationContract]
           public void DoWork()
      }

      [ServiceContract]
      public interface IScheduleTables
      {
            [OperatonContract]
            string getTable(string l, int r, int c)
            [OperatonContract]
            string getTable(string test)
            [OperatonContract]
            string createTable(List<string> lst, int r, int bal)
      }

      public class ScheduleTables:IScheduleTables
      {
               //Interface Implementation
      }
 }

web.config

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="NewBehavior0">
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="NewBinding0" />
      </basicHttpBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="NewBehavior0" name="StatusSimulator.ASDService">
        <endpoint address="http://localhost:2405/ASDService.svc" binding="basicHttpBinding"
          bindingConfiguration="NewBinding0" name="ASDEndpoint" contract="StatusSimulator.ASDService" />
        <endpoint address="http://localhost:2405/ASDService.svc" binding ="basicHttpBinding"
          bindingConfiguration="NewBinding0" name="ScheduleTableEndPoint" contract="StatusSimulator.IScheduleTables" />
      </service>
    </services>
  </system.serviceModel>

我尝试过的绝对不会将接口暴露给服务。我唯一能看到的是ASDService.DoWork。如何在预先存在的服务中实现其他类或接口?

我在配置中尝试了两个服务,多个端点。我尝试将接口嵌套在 ASDService 中。我在这里阅读的教程和帖子比我想说的要多。当它坐下来时,我收到了错误

在服务“ASDService”实施的合同列表中找不到合同名称“StatusSimulator.IScheduleTables”。

我很困惑,没有想法,如果这种情况继续下去,我将需要专业的帮助。

4

1 回答 1

4

您不应该将服务合同(在具体类上定义ADsService)与另一个服务合同 ( IScheduleTables) 的实现混为一谈。

我建议你有两个不同的服务契约作为接口(IASDServiceIScheduleTables),然后是一个实现这两个接口的具体类——像这样:

namespace StatusSimulator
{
      [ServiceContract]
      public interface IASDService
      {
           [OperationContract]
           public void DoWork()
      }

      [ServiceContract]
      public interface IScheduleTables
      {
            [OperatonContract]
            string getTable(string l, int r, int c)
            [OperatonContract]
            string getTable(string test)
            [OperatonContract]
            string createTable(List<string> lst, int r, int bal)
      }

      public class ServiceImplementation : IADSService, IScheduleTables
      {
         // implement both interfaces here...
      }
 }

至于资源:我会用这些作为初学者:

然后是几本好书——最著名的是Michele Leroux Bustamante 的《 Learning WCF 》。她涵盖了所有必要的主题,并且以一种非常容易理解和平易近人的方式。这将教您编写高质量、有用的 WCF 服务所需的一切——基础知识、中间主题、安全性、事务控制等等。

于 2013-04-19T12:11:26.707 回答