views:

14912

answers:

8

When I try to test the AutoLotWCFService using "wcftestclient", I get the following error. What am I doing wrong? Any insight will help. This is a simple Web Service that has wshttpbinding with interface contract and the implementation in the service. Here is the long error message: The Web.Config file has 2 endpoints - one for Web Service itself and other for metaDataExchange. Its all pretty much default stuff. I can include the code if needed - it seems I cannot attach files here.


Error: Cannot obtain Metadata from http://localhost/AutoLotWCFService/Service.svc
If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address.  
For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.
WS-Metadata Exchange Error
 URI: http://localhost/AutoLotWCFService/Service.svc
 Metadata contains a reference that cannot be resolved: 'http://localhost/AutoLotWCFService/Service.svc'.
 The remote server returned an unexpected response: (405) Method not allowed.
 The remote server returned an error: (405) Method Not Allowed.
 HTTP GET Error    URI: http://localhost/AutoLotWCFService/Service.svc
 The document at the url http://localhost/AutoLotWCFService/Service.svc was not recognized as a known document type.The error message from each known type may help you fix the problem:
 - Report from 'DISCO Document' is 'Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.'.
 - Report from 'WSDL Document' is 'There is an error in XML document (1, 2).' -Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.
 - Report from 'XML Schema' is 'Name cannot begin with the '%' character, hexadecimal value 0x25. Line 1, position 2.'.


A: 
Craig Wilson
A: 

Thanks for the response but I have that behavior tag as you specify. Are the strings case sensitive - "serviceBehavior" vs "ServiceBehavior". Anything stupid like that??

Thanks

Added additional info the my response.
Craig Wilson
A: 

Thanks; believe it or not the problem of at least loading the service through wcftestclient was solved when I re-registered the ASPNET in IIS with aspnet-regiis.

The next problem is to be able to invoke the methods exposed by the service through wcftestclient. What are the security issues that I have to deal with? I had to enable Anonymous login with windows auth. and still the invoke generated exceptions that pointed to something related to access violation. On searching some things point to installing certificates to be able to invoke.. Please enlighten if possible.

+6  A: 

I recently had this problem whilst trying to host WCF on my Windows Vista Laptop under IIS7.

I first recieved the following error : "HTTP Error 404.3 - Not Found" and one of the resolutions suggested was to "Ensure that the expected handler for the current page is mapped."

So I added a handler for the .svc file manually and defined it as a DiscoveryRequestHandler, thinking that this might help. This caused the problem you described above.

The actual resolution was to delete the handler I had added, and to run the following commands:

CD c:\windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\
ServiceModelReg -i

This resolved my issue and the service is working fine. I hope this might help shed some light on your problem. I can't be certain but this is probably because of the order in which I've installed the various packages on my dev laptop.

David_Jarrett
Excelent! This worked like a charm. Had a 404.17 problem and this fixed it.
rdkleine
A: 

David Jarrett...whoever you are...I love ya man! That solved my problem here, too!!! How come that "ServiceModelReg -i" solution isn't documented in some obvious way for us WCF developers?! Argh!

A: 

Instead of using Wcf test client, you could use WCFStorm. It's not free but it works.

Yes, but if you read the question and answers, you'll see that WCF Test Client wasn't actually the problem. -1.
John Saunders
A: 

Add this to your server web config under specified, will then provide the real error:

Bospomp
A: 

Try checking if service(name) in the Service Markup (right click on servicename.svc) matches the service(name) in your web.config file.

Cheers!

Mariusz Pawlowski