error “No protocol binding matches the given address …”

前端 未结 3 589
夕颜
夕颜 2020-12-30 11:51

I have 2 WCF serivces hosted in IIS server.

Here is web.config



  
    

        
相关标签:
3条回答
  • 2020-12-30 12:33

    When you host your WCF services in IIS, your address defined in the service endpoints is not the one you need to use.

    <endpoint 
          // this is **NOT** the address you can use to call your service! 
          address="http://localhost:9001/BubensService"
    

    Rather, the web server, its port (usually 80) and the virtual directory plus the SVC file determine your service address. So you service addresses here would be:

    http://YourServer/YourVirtualDirectory/YourServiceFile.svc/
    

    What you can do is define relative addresses, e.g.:

    <service name="BShop.Services.BubensService">
       <endpoint name="" 
                 address="BubensService" 
                 binding="basicHttpBinding" bindingConfiguration="HttpBinding"  
                 contract="BShop.Services.IBubensService" />
    </service>
    

    Then this service would be callable at :

    http://YourServer/YourVirtualDirectory/YourServiceFile.svc/BubensService
    
    0 讨论(0)
  • 2020-12-30 12:35

    N.B. If anyone facing this problem while viewing WCF service in browser during development using Visual Studio, this one is for them.

    I was facing this problem when trying to view my .svc service from VS after assigning a value to endpoint address attribute in Web.config file, but if I don't assign the endpoint address attribute a value then it works perfectly.

    0 讨论(0)
  • 2020-12-30 12:45

    Just for the benefit of people searching. I came across this problem. To fix it I reviewed the web.config using marc_s 's answer then did the following as I still had problems:

    1. Delete Virtual Directory.
    2. Went to project properties - > Web Panel -> Selected 'Use Local IIS Web Server' with project url of http://{localhost}/{myservice} (obviously without the braces) and re-created the virtual directory.
    3. Changed the App Pool to .NET 4 with integrated pipeline mode. The app pool change seemed to fix it.
    0 讨论(0)
提交回复
热议问题