1

我正在使用 WebHttpBinding 开发 REST 服务。在我的服务中一切都很完美,但在运行时它给出了Error Endpoint not Found.

web.config 文件是这样的:

 <configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>
  <system.serviceModel>
    <services>
      <service name="Service">
        <endpoint address="http://localhost:10492/Service.svc" binding="webHttpBinding" contract="IService" behaviorConfiguration="webby"/>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webby">
          <webHttp helpEnabled="true"/>
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false 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>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>

  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>
</configuration>

在地址我也试过这样:

<endpoint address="" binding="webHttpBinding" contract="IService" behaviorConfiguration="webby"/>

但它仍然无法正常工作。

4

1 回答 1

1

这是一个让您入门的好链接:http ://weblogs.asp.net/kiyoshi/archive/2008/10/08/wcf-using-webhttpbinding-for-rest-services.aspx

您尝试在哪个地址连接到您的 Web 服务?(您是否尝试在 Web 浏览器中导航到该地址,以及您输入的 URL 是什么?)

[编辑]

由于您托管在 Web 应用程序中,IIS(或您使用的任何 Web 服务器)将期望您的服务存在服务描述符文件。您不能只在 web.config 中创建一个 URI,并将其托管在 IIS 中,而文件系统上没有关联的“服务”文件(这是您的 Service1.svc 文件)。

这是在 Internet 信息服务中托管 WCF 服务所特有的细微差别 - 如果您正在阅读专为自托管方案设计的教程,则很容易忘记这一步。

确保您的网站中有一个名为“Service1.svc”的文件,它应该包含如下内容:

<%@ServiceHost Language="C#" Service="MyNamespace.Service1" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>

这是在 IIS 中托管 REST 服务的教程:http: //saravananarumugam.wordpress.com/2011/03/04/simple-rest-implementation-with-webhttpbinding/

另一个让我担心的问题是,您定义的端点地址(“http://localhost:10492/Service.svc”)不符合 REST 约定。我不希望这会是你的问题,但这是一个问题。

于 2012-09-27T19:56:19.643 回答