0

Web サービスをホストする Web サイトを作成しました。実行するとランタイム エラーが発生します

サービス「Try」によって実装されたコントラクトのリストに、コントラクト名「ITry」が見つかりませんでした。

私のWCFサービスインターフェースとクラスはそのように見えます

namespace test1
{
   [ServiceContract]
   public interface ITry
   {
        [OperationContract]
        [WebInvoke(Method = "GET",
         ResponseFormat = WebMessageFormat.Json,
         UriTemplate = "data/{username}/{password}")]
        string Login(string username, string password);
    }
}

サービスの実装:

namespace test1
{
    public class Try : ITry
    {
        public string Login(string username, string password)
        {
            using (var instance = new FacultySystemEntities1())
            {
                var user = instance.Users.Where(u => u.UserName == username && u.UserPassword == password).FirstOrDefault();

                if (user != null)
                    return "true";
                else
                    return "false";
            }
        }
    }
}

およびWebサイト、web.configは次のようになります

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
    <services>
      <service name="test1.Try">
        <endpoint address="http://localhost:8732/Try" binding="webHttpBinding" contract="ITry"/>
      </service>
    </services>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>
4

1 に答える 1

2

web.config でコントラクト属性を「ITry」から「test1.ITry」に更新します。

<services> 
  <service name="test1.Try"> 
    <endpoint address="http://localhost:8732/Try" binding="webHttpBinding" contract="test1.ITry"/> 
  </service> 
</services> 
于 2012-05-20T06:58:03.537 に答える