0

我计划根据不同的合同托管多个 RESTful 服务。有很多类似的问题,但我的 web.config 文件看起来不同,我不知道为什么。

这是我的 web.config 文件的一部分:

    <standardEndpoints>
          <webHttpEndpoint>
            <standardEndpoint name="" 
                              helpEnabled="true" 
                              automaticFormatSelectionEnabled="true">
            </standardEndpoint>
          </webHttpEndpoint>
    </standardEndpoints>

这是我的 Web 应用程序中的服务声明:

    RouteTable.Routes.Add(new ServiceRoute("bob/chocolate", new WebServiceHostFactory(), typeof(RESTchocolate)));
    RouteTable.Routes.Add(new ServiceRoute("bob/vanilla", new WebServiceHostFactory(), typeof(RESTvanilla)));

只有第一个 Route 似乎在工作(使用 .NET 的漂亮的“bob/chocolate/help”端点功能进行测试以列出可用的方法)这并不让我感到惊讶,但是我应该如何修改我的 web.config 文件?你们中有人知道怎么做吗?我需要修改其他东西吗?

对于那些想知道的人,我的合同是有效的。

如果我尝试在浏览器中到达第二个端点,我会在漂亮的 .NET 显示中看到“找不到端点”。

编辑 :

我将以下节点添加到我的配置文件中......

    <services>
      <service name="chocolate">
        <endpoint address="bob/chocolate" binding="basicHttpBinding" name="chocolate" contract="RESTapi.IRESTchocolate" />
      </service>
      <service name="vanilla">
        <endpoint address="bob/vanilla" binding="basicHttpBinding" name="vanilla" contract="RESTapi.IRESTvanilla" />
      </service>
    </services>

但我得到了同样的行为。问题仍然在这里

编辑:这是我要求的完整配置文件(没有上面的节点):

    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <authentication mode="None"></authentication>
      </system.web>
      <system.serviceModel>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true">
        </serviceHostingEnvironment>
         <standardEndpoints>
          <webHttpEndpoint>
            <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"></standardEndpoint>
          </webHttpEndpoint>
        </standardEndpoints>
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>

    </configuration>
4

1 回答 1

1

我真的建议您安装WCF REST 服务模板 40并查看引导程序。

网页配置

<standardEndpoints>
  <webHttpEndpoint>
    <!-- 
        Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
        via the attributes on the <standardEndpoint> element below
    -->
    <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
  </webHttpEndpoint>
</standardEndpoints>

全球.asax

// Edit the base address of Service1 by replacing the "Service1" string below
RouteTable.Routes.Add(new ServiceRoute("Service1", new WebServiceHostFactory(), typeof(Service1)));
于 2012-08-14T15:00:46.150 回答