wcf中的File-less Activation

File-less Activation

Although .svc files make it easy to expose WCF services, an even easier approach would be to define virtual activation endpoints within Web.config, thereby removing the need for .svc files altogether.

In WCF 4, you can define virtual service activation endpoints that map to your service types in Web.config. This makes it possible to activate WCF services without having to maintain physical .svc files (a.k.a. “file-less activation”). The following example shows how to configure an activation endpoint:

<configuration>

  <system.serviceModel>

    <serviceHostingEnvironment>

      <serviceActivations>

        <add relativeAddress="Greeting.svc" service="GreetingService"/>

      </serviceActivations>

    </serviceHostingEnvironment>

  </system.serviceModel>

</configuration>

With this in place, it’s now possible to activate the GreetingService using a relative path of “Greeting.svc” (relative to the base address of the Web application).

In order to illustrate this, I’ve created an IIS application on my machine called “GreetingSite”, which I assigned to the “ASP.NET v4.0” application pool, and mapped it to the GreetingService project directory that contains the web.config shown above.

Now I can simply browse to http://localhost/GreetingSite/Greeting.svc without actually having a physical .svc file on disk.

Figure 9 shows what this looks like in the browser.

仅仅添加一个虚拟的相对地址,就可以进行服务的访问。

serviceHostingEnvironment是system.serviceModel的子结点

<serviceHostingEnvironment>
<serviceActivations>
<add relativeAddress="Service.svc" service="ZBMService.QueryHistoryData" />
</serviceActivations>
</serviceHostingEnvironment>

实际上没有Service.svc文件的,但是可以访问http://localhost:8000/Service.svc

原文地址:https://www.cnblogs.com/chucklu/p/4717770.html