0

私はWCF REST 404の投稿のほとんどを読みましたが、役に立たなかった...

WCF REST サービスを正常に構築しました。しかし、現在それが問題を引き起こしています。サンプルの WCF REST サービスを作成しようとしましたが、.SVC を使用せずにこれを機能させることはできません。

これは私のコードにあるものです

 [ServiceContract]
    public interface IService1
    {
        [WebGet(UriTemplate="data")]
        [OperationContract]
        string GetData();
    }

 public class Service1 : IService1
    {
        public string GetData()
        {
            return "1";
        }
    }

これは私のweb.configにあるものです

<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service behaviorConfiguration="Default" name="RESTService.Service1">
        <endpoint address="http://mydomain:8888/Service1.svc" 
                  binding="webHttpBinding" 
                  contract="RESTService.IService1" 
                  behaviorConfiguration="Web" />
        <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Default">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
      <behavior name="Web">
        <webHttp />
      </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>
 <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>

</configuration>

に行くとhttp://mydomain:8888/data、404 で応答します。GetData() 関数にヒットしない理由はありますか? エンドポイント アドレスを削除すると、次の URL が機能します

http://mydomain:8888/Service1.svc/data

ただし、アドレスはhttp://mydomain:8888/data

4

1 に答える 1

1

正しく機能しているバージョン(パスにsvcを使用)でWeb構成を残し、アプリケーションの開始時にグローバルasaxファイルにルートテーブルエントリを追加してみてください。

詳細についてはこれをチェックしてください

http://msdn.microsoft.com/en-us/library/cc668177.aspx

于 2012-08-13T01:13:11.693 に答える