What was the difference between WSDL & Mex Endpoint in WCF

Thomas

I have couple of question on mex endpoint.

  1. In legacy web services, we create a proxy using wsdl. The WSDL exposes the web service's meta data. In wcf, another term comes that mex endpoint, which also exposes meta data, but wsdl is still alive in wcf. I am new to wcf, and I am confused regarding the difference between wsdl & mex endpoint?

  2. What is the meaning of httpGetEnabled="false" or httpGetEnabled="true"?

  3. If I set httpGetEnabled="false" then what will happen? Does it mean the client will not be able to add service reference from their IDE? But if I set httpGetEnabled="false", and saw client can add service reference. What the httpGetEnabled setting does is very confusing.

  4. One guy said

MEX and WSDL are two different schemes to tell potential clients about the structure of your service. So you can choose to either make your service contracts public as (MEX) or WSDL.

If the above statement is true then tell me when to use MEX & when to use WSDL?

  1. How can I disable mex and expose my service only through WSDL?

  2. WSDL support all bidning like wshttp,wsdualhttp or tcp etc... If possible please discuss about wsdl & mex in details.

UPDATE

You said

5. How can I disable mex and expose my service only through WSDL?

Do not specifiy a mex endpoint in your config and use httpGetEnabled.

Are you trying to mean that there should be no mex endpoint related entry in config and httpgetenable would look like the following?

<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8080/SampleService?wsdl"/>

You said

A WSDL is generally exposed through http or https get urls that you can't really configure (say for security limitations or for backward compatibility). MEX endpoints expose metadata over configurable endpoints, and can use different types of transports, such as TCP or HTTP, and different types of security mechanisms.

You said mex is configurable, but the wsdl is not. What do you mean by mex is configurable? Please discuss what kind of configuration mex support and how it can be configured.

If I set httpGetEnabled="false" then the WSDL will not be possible to generate?

Cybermaxs

1) in legacy web service we create proxy using wsdl. WSDL expose web service meta data. in wcf another term comes that mex endpoint which also expose meta data but wsdl is still live in wcf.i am new in wcf hence i am confusing what is the difference between wsdl & mex endpoint?

It's pretty the same thing but mex is designed to support non-HTTP protocols and for advanced configuration/security scenarios. WSDL is the legacy way and MEX is the new improved version with WCF.

2) what is the meaning of httpGetEnabled="false" or httpGetEnabled="true"

It will expose metadata via wsdl through the defautl url, even if you don't have defined a mex endpoint for your service.

3) if i set httpGetEnabled="false" then what will happen? does it mean that client will not be able to add service reference from IDE? but i set httpGetEnabled="false" and saw client can add service reference. so it is very confusing for me that what httpGetEnabled is false or true does ?

A client can add a reference in VS only if httpGetEnabled/httpsGetEnabled is enable or if you have define a mex endpoint in the configuration of your service. The best practice is to expose metadata on dev environnement but not on production. You can also distribute your service contracts via separate assemblies and use ChannelFactory.

4) one guy said :- MEX and WSDL are two different schemes to tell potential clients about the structure of your service. So you can choose to either make your service contracts public as (MEX) or WSDL. if the above statement is true then tell me when to use MEX & when to use WSDL?

A WSDL is generally exposed through http or https get urls that you can't really configure (say for security limitations or for backward compatibility). MEX endpoints expose metadata over configurable endpoints, and can use different types of transports, such as TCP or HTTP, and different types of security mechanisms.

So MEX are more configurable, while WSDL is more interoperable with older versions of clients and non-.net clients that work with WSDLs.

5) how could i disable mex and expose my service through only WSDL

Do not specifiy a mex endpoint in your config and use httpGetEnabled

6) WSDL support all bidning like wshttp,wsdualhttp or tcp etc...

Exposing metadata is totally different that invoking the service.

UPDATE

re you try to mean that there should be no mex endpoint related entry in config and httpgetenable would look like

Yes, you don't have to specify a mex endpoint AND httpGetEnabled. Only one is required to expose metadata. Do not specifiy httpGetUrl as this is depending on your hosting environment.

you said mex is configurable but wsdl is not. what r u trying to means mex is configurable...please discuss what kind of configuration mex support & how to configure.

MEX endpoints are special endpoints that allow clients to receive the service’s metadata by using SOAP messages instead of http get requests. You can create MEX endpoint that can be accessed through http, https, tcp, and even named pipes. HttpGetEnable allow you to expose metadata through HTTP GET method, usually the service’s address with the suffix of ‘?wsdl'

MEX and WSDL both output nearly the same thing.

In most cases there is no need for MEX endpoint – using WSDLs with http get is usually enough.

I understand your intention to understand this part, but do not spend to many times on this : there are so many others complicated features !

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WCF中的WSDL和Mex端点之间有什么区别

来自分类Dev

Difference between BasicHttpBinding and NetHttpBinding in WCF

来自分类Dev

WCF定制WSDL部分

来自分类Dev

what's the difference between is not null and <>' '

来自分类Dev

避免在WCF中嵌套Wsdl

来自分类Dev

WCF服务生成的WSDL

来自分类Dev

wsdl中的WCF必需参数

来自分类Dev

Ruby - What is the difference between intern and to_sym

来自分类Dev

What is the difference between isomorphic-fetch and fetch?

来自分类Dev

What is the difference between diff and diff=astextplain?

来自分类Dev

What is the difference between Command + CommandHandler and Service?

来自分类Dev

What is the difference between Invariants and Validation Rules?

来自分类Dev

What is the difference between these two ruby functions?

来自分类Dev

What is the difference between `git diff` and `git difftool`?

来自分类Dev

What is the difference between Lexical grammar and Syntactic grammar?

来自分类Dev

What is the difference between a method and a proc object?

来自分类Dev

what is the difference between Redirect:to() and Redirect::route()?

来自分类Dev

What is the difference between LALR and LR parsing?

来自分类Dev

What is the difference between type conversion and type assertion?

来自分类Dev

What is the difference between async([](){}) and thread([](){}).detach()?

来自分类Dev

what is the difference between using or not Spring Beans?

来自分类Dev

What is the difference between DOMXPath::evaluate and DOMXPath::query?

来自分类Dev

What's the difference between gets and scanf?

来自分类Dev

What is the difference between Genetic and Cellular Genetic algorithm

来自分类Dev

What is the difference between a slot and a method in Qt?

来自分类Dev

What is the difference between (a+b)* and (a*b*)*?

来自分类Dev

What is the difference between /opt and /usr/local?

来自分类Dev

IIS上的WCF服务-WSDL为空

来自分类Dev

IIS上的WCF服务-WSDL为空

Related 相关文章

  1. 1

    WCF中的WSDL和Mex端点之间有什么区别

  2. 2

    Difference between BasicHttpBinding and NetHttpBinding in WCF

  3. 3

    WCF定制WSDL部分

  4. 4

    what's the difference between is not null and <>' '

  5. 5

    避免在WCF中嵌套Wsdl

  6. 6

    WCF服务生成的WSDL

  7. 7

    wsdl中的WCF必需参数

  8. 8

    Ruby - What is the difference between intern and to_sym

  9. 9

    What is the difference between isomorphic-fetch and fetch?

  10. 10

    What is the difference between diff and diff=astextplain?

  11. 11

    What is the difference between Command + CommandHandler and Service?

  12. 12

    What is the difference between Invariants and Validation Rules?

  13. 13

    What is the difference between these two ruby functions?

  14. 14

    What is the difference between `git diff` and `git difftool`?

  15. 15

    What is the difference between Lexical grammar and Syntactic grammar?

  16. 16

    What is the difference between a method and a proc object?

  17. 17

    what is the difference between Redirect:to() and Redirect::route()?

  18. 18

    What is the difference between LALR and LR parsing?

  19. 19

    What is the difference between type conversion and type assertion?

  20. 20

    What is the difference between async([](){}) and thread([](){}).detach()?

  21. 21

    what is the difference between using or not Spring Beans?

  22. 22

    What is the difference between DOMXPath::evaluate and DOMXPath::query?

  23. 23

    What's the difference between gets and scanf?

  24. 24

    What is the difference between Genetic and Cellular Genetic algorithm

  25. 25

    What is the difference between a slot and a method in Qt?

  26. 26

    What is the difference between (a+b)* and (a*b*)*?

  27. 27

    What is the difference between /opt and /usr/local?

  28. 28

    IIS上的WCF服务-WSDL为空

  29. 29

    IIS上的WCF服务-WSDL为空

热门标签

归档