Answers

Question and Answer:

  Home  WCF (Windows Communication Foundation)

⟩ Do we have to use the relative addresses when hosting in the IIS or the absolute addresses? Why?

IIS Addressing Considerations

When hosting in IIS, you don’t have to worry about creating

or managing the ServiceHost instance. IIS takes care of

this for you behind the scenes. You simply map a .svc

endpoint to your service class, configure the service

endpoints and behaviors in web.config, and let Windows

Communication Foundation manage the process of creating and

configuring the ServiceHost instance at runtime.

In this hosting scenario, the base HTTP address is

determined by the IIS virtual directory housing the service

along with the name of the .svc file. You, as the

developer, really have nothing to say about the base

address since it’s fully controlled by the IIS addressing

scheme.

As a result, Windows Communication Foundation happily

ignores any base addresses you may specify in web.config in

this scenario. If you want to change the base address for

your endpoints, you’ll need to move the service to a

different IIS virtual directory.

Not only does IIS control the base address, it forces all

of your endpoints to actually use the same base address

(unlike self-hosting). This means that if you do specify an

absolute address for a particular endpoint, it must start

with the base address corresponding to the virtual

directory or you’ll get an exception. As a result, it

really only makes sense to use relative addresses when

hosting in IIS.

 240 views

More Questions for you: