0

私はWCFを試している初心者です。Androidを使ってWCFにアクセスしようとしていますが、問題があり、私の調査によると、WCFにアクセスするにはjsonが必要なので、jsonに変更してみました。

インターフェイスをオブジェクト型に変更したところ、以下に示すエラーが発生し始めました

The exception message is: The type 'AddItemService.Login', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found..]

私のインターフェース方法:

[OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "Login", BodyStyle = WebMessageBodyStyle.WrappedRequest, 
            ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
        [Description("Returns the Login User ID")]
        int GetUserId(Login login);

私のweb.config:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="AddItemService.Login"
                behaviorConfiguration="RESTBehavior">
        <endpoint address=""
                  binding="webHttpBinding"
                  contract="AddItemService.ILogin"
                   behaviorConfiguration="MyEndpointBehavior"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="RESTBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="MyEndpointBehavior">
          <webHttp helpEnabled="true"/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
</configuration>

なぜうまくいかないのかわかりません。誰でも私を助けてもらえますか?

4

1 に答える 1

1

WCF サービスの .svc ファイル (分離コードではなく実際のマークアップ ファイル) で指定されたサービス タイプが、存在しないサービス クラス タイプを参照しているようです。

Visual Studio で .svc ファイルを右クリックして [マークアップの表示] を選択すると、そのファイルの ServiceHost ディレクティブの [サービス] 属性に、WCF サービス インターフェイスを実装するクラスの名前が含まれている必要があります。現時点でAddItemService.Loginは存在しない を参照しているように聞こえます。

于 2012-04-10T09:52:00.050 に答える