0

我的 WCF 服务位于此位置

http:/xxx.xxx.xxx.xxx:6040/service.svc/

在 IIS7.5 中有两个合同SubmitReturnGetForward.

但是客户在

http:/xxx.xxx.xxx.xxx:6040/SubmitReturn/232323

在根目录上,即 url 中没有服务名称,但服务应该像这样调用

 http:/xxx.xxx.xxx.xxx:6040/service.svc/SubmitReturn/123456789

那么我怎样才能使 WCF 服务在

http:/xxx.xxx.xxx.xxx:6040/

而不是在

http:/xxx.xxx.xxx.xxx:6040/service.svc/

在 IIS 的根目录?

4

2 回答 2

0

我正在关注此链接以进行 URL 重写(好链接

www.iis.net/learn/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules

url 重写适用于我的服务器上的“article.aspx”(转到上面提供的链接查看)。

但是对于我的服务,它给出了错误“未找到端点”。

这是我最新的 web.config 文件:

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="MessageWebService.MessageWebService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:6040"/>
          </baseAddresses>
        </host>
        <endpoint
          address=""
          binding="webHttpBinding"
          contract="MessageWebService.IMessageWebService"
          bindingConfiguration="MessageWebService"
          behaviorConfiguration="MessageWebService">
        </endpoint>
      </service>
    </services>
    <bindings>
      <webHttpBinding>
        <binding name="MessageWebService"
          maxReceivedMessageSize="2147483647"
          maxBufferSize="2147483647" />
      </webHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="MessageWebService">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Fail bad requests">
          <match url="." />
          <conditions>
            <add input="{HTTP_HOST}" negate="true" pattern="localhost" />
          </conditions>
          <action type="AbortRequest" />
        </rule>
        <rule name="Rewrite to MessageWebService.MessageWebService.svc">
          <match url="*" />
          <action type="Rewrite" url="/MessageWebService.MessageWebService.svc/{R:0}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
于 2013-07-12T08:59:13.207 回答
0

请参阅在 没有 .svc 文件的情况下创建 WCF 服务

和评论之一中提到的链接 - http://blogs.msdn.com/b/rampo/archive/2009/10/27/activation-without-svc-files-config-based-activation-cba.aspx

于 2013-07-08T17:03:37.843 回答