在IIS地址下托管的wcf服务

时间:2011-10-12 09:16:21

标签: wcf iis-7

我在IIS下托管了一个WCF服务。 我有以下配置:

<services>
      <service name="BillboardServices.LoginService" behaviorConfiguration="LoginServiceBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="http://myip/LoginService/" />
          </baseAddresses>
        </host>
        <endpoint address="" name="LoginService" binding="basicHttpBinding" contract="BillboardServices.ILoginService" />
          <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
      </service>

如果我输入http://myip/LoginService/,我会得到404。 如果我输入http://myip/Service1.svc,我会获得服务元数据。

我需要对配置进行哪些更改才能通过nice url访问服务?

谢谢。

1 个答案:

答案 0 :(得分:0)

为了拥有无扩展服务,您需要使用WCF 4并在global.asax文件中初始化路由引擎,如下所示:

void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes();
    }

    private void RegisterRoutes()
    {
        // Edit the base address of Service1 by replacing the "Service1" string below
        RouteTable.Routes.Add(new ServiceRoute("Service1", new WebServiceHostFactory(), typeof(Service1)));
    }