GET请求WCF REST服务上的页面未找到错误

时间:2017-01-30 14:51:35

标签: c# .net rest wcf wcf-rest

我在WCF中使用一个简单的get请求实现了一个RESTFUL服务,该请求以json格式返回一个字符串。

以下是我的web.config

 <?xml version="1.0"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <services>
      <service  name="Service1">
        <endpoint address="" binding="webHttpBinding" contract="IService1" />
        <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

这是Service1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace Testwcf
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate="GetAttribute", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
        String GetAttribute();

    }

}

这是Service.svc.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Web;
    using System.Text;
    using System.IO;
    using System.Diagnostics;

    namespace Testwcf
    {
        // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
        public class Service1 : IService1
        {
            public String GetAttribute()
            {
              //  System.IO.File.WriteAllText(@"C:\New folder\log.txt", "get attribute is called"); 

                String ret;

                ret = "{\"action\": \"AttributeMapRequest\",\"attributes\": {\"id\": \"AccountName\"}";

               return ret;
}   
        }
    }

我已将其部署在IIS中。

当我浏览网址时:&#34; http://localhost/WCFServicetest1/Service.svc/GetAttribute&#34;。

&#34;无法找到网页&#34; 错误。

有人可以帮帮我吗?

先谢谢。

0 个答案:

没有答案