Unable to add reference to third party WCF Service using Visual Studio - asp.net

I recently received an updated integration document from a third party web services provider. One of the changes indicated that there are updated services that are located at a new URL.
I proceeded to delete my existing reference in my .NET 3.5 console application (VS2012) and attempted to add a new one pointing to the updated URL but was unable to do so due to the following error and die disabled "Add" button:
I subsequently tried to restore the reference to the old URL (which worked a mere month ago when I initially added it) but that to gave the same error.
I did a bit of googling and found the following posts that were not very encouraging:
Can't add Service Reference
Mixing Add Service Reference and WCF Web HTTP (a.k.a. REST) endpoint does not work
Don’t use “Add Service Reference”!
The first link simply repeated my problem statement. The second suggested there is no hope for me and the third is of no relevance since I do not control the server side component.
I was hoping someone with some more WCF experience possibly point me in the right direction. I suppose my question is twofold:
1: Is this something I am doing wrong on my side or can it be a problem with configuration on the third party server?
2: Is there any way I can reasonably add a reference to those services in my project without using "Add Reference" in VS, using the WSDL which I am able to download?
Edit: Just to calrify, the URL resolves and I can see the service controls and descriptions in both my browser and the VS window where you attempt to resolve the WS but the ".../$metadata" part in the error message above is not part of the original URL I entered. original URL which resolves fine is http://service.somewhere/service234/thing and the error refers to http://service.somewhere/service234/thing/_vti_bin/ListData.svc/$metadata

Related

Working with Sabre web services but not by using proxy class?

i got sabre wsdl and tpfc connector services from sabre. also got their wsdl proxy class samples. Now these things are old, i mean their sample code is using .net framework 2.0, and proxy classes. Now its an old APPROACH, while someone suggested me app web reference which will create a .discomap , but i dont see any good reference tutorial.
So what i need to know is , a step by step guide or simple points:
1. how to add wsdl as .discomap web reference
2. how to use that added discomap and how it differs from proxy class.
recently i done some tinkering myself and added a webreference, but i still have no idea what steps i have used to add this.
thanks
To add a reference of one of Sabre's webservices you need to right click on Service Reference in your solution explorer and choose Add Service Reference. In the Add Service Reference window displayed, click on Advance locatetd at the low left side. This will display the Service Reference Settings window, click on Add Web Reference at the low left side of the window. In the URL field of the Add Web Reference window add the path where you downloaded the service files and wsdl or the online wsdl url.
Hope this information is helpful.

Vs2010 Proxy, where's the code

I have inhherited a vs2010 c# web project (asp.net). It has a web reference to a web service. There's been a slight change to the service - a new operation has been added. I'd like to update the proxy class so that i can call the new operation but i can't find the class. I seem to remember there used to be a "show all files" button in solution explorer that would reveal the proxy class but i can see no sign of that. Unfortunately, i'm not able to refresh the proxy by pointing it at the web service metadata wsdl because vs is no longer installed on any pc that can reach the web service. Anyone know where i can find the proxy class?
It doesn't matter you can't find it in Visual Studio - you can always locate a proper file in your filesystem, under the project directory.
Problem was, the app was running - doh!
Yes, you are right. There is a "Show all files" icon in the tool bar. It will only be available when you have a project selected, so you want to select the web service's parent project:
Expand the service reference and under it the file called Reference.cs is the proxy class.
You should NOT be hand editing this though. You should make the changes to the service and then regenerate the proxy using the Update Service Reference right click option. But then if you really can't do that as you say, then just hand edit the file. But beware that any changes you make will be lost if someone does regenerate it again in the future. Very Risky! (I prey you are using source control)
There is a WSDL.exe command line tool.
Copy and execute this command line tool in the PC where you can have access to the WebService, it will generates the proxy again and you can replace them with the files in your project.
http://msdn.microsoft.com/en-us/library/7h3ystb6(v=vs.80).aspx

Object definition not updating when changes are made to object inside Web Service

I've made a change to an object (added a class attribute) inside a web service and published the service. On a separate project, updating the web service reference (in Visual Studio) yields no change, and the newly added attribute is nowhere to be found.
I've confirmed that the change has been correctly published and that the new attribute is not somehow hidden from the outside, by looking at the service contract in a browser. Also, deleting the reference and adding it again works, but it feels cumbersome to have to do it all the time a change has to be done.
Is this some configuration issue or just a feature I have to learn to live with?

silverlight error - the opreation is not supported for a relative uri

I've just started developing silverlight applications. I've created a webserivce in my asp.net project. Now, when I try to connect to it through my silverlight project I receive the following error:
"the opreation is not supported for a relative uri"
I am using the following url -->
http://192.168.1.2/MyWebsite/SubVersionedHistory.svc
I can find the class and its methods, but I receive this horrific error when I add it.
Thank you for your help and advice,
Vondiplo
I don't think you're alone in hitting this problem. I hit it today with VS2008SP1 + SL2 trying to create a Service Reference for an ADO.NET Data Service. First time I've hit the error.
Others have detailed similar experiences to reach this error:
http://silverlight.net/forums/t/87535.aspx
http://silverlight.net/forums/t/56629.aspx
It's not entirely clear at this point if the issue is with the IDE "Add Service Reference" dialog or something specific in the services causing this error. In my case, however, my code still worked despite the error message. I simply passed the URL to my service in the constructor of my DataService proxy client, like this:
var context = new DataServiceContext(new Uri("NorthwindDataService.svc", UriKind.Relative));
Summary point: Just because you hit this error in the IDE, your service reference may still work. Give it a try and let us know if you're seeing errors at run time.
Hope that helps.
[UPDATE] Based on some other advice I've found and tested, you can also try:
deleting your Service Reference
deleting your ServiceReferences.ClientConfig file
saving your solution
and then closing and reopening it in VS.
The simple act of closing and reopening your project has been shown to fix several problems with the Add Service wizard. Re-run the Add Service Ref wizard and you may have better luck. I personally tested this solution on a project today and can confirm it works. Hope that adds extra help to finding your solution.
You should be more specific about your problem. For example, are you having this problem when adding the reference or when you actually try to consume the service?
It sounds like you need to be using a full path, including the "http://" but that is just a shot in the dark based on the error message you provide.
[edit]If you are using the built in ASP.NET server instead of IIS then be sure you set a specific port number and use it in your path. For example, I have used http://localhost:4940/MyService.svc for testing[/edit]
Maybe this response can help you
You cannot use AbsolutePath, You need to use AbsoluteURL. Build your URL this way:
Uri url = new Uri(App.Current.Host.Source, "../settings.xml");client.DownloadStringAsync(url);
http://silverlight.net/forums/p/28912/95541.aspx
HTH
Braulio
Check the ServiceReferences.ClientConfig
if there are multiple endpoints there you will get this exception. one thing that can cause this is referencing a service using casini, later switiching to IIS express and rereferencing the service.

Can Microsoft Code Contracts be used with an ASP.NET Website?

I'm currently using Microsoft Code Contracts in an ASP.NET MVC application without any issues but I can not seem to get it quite running in a basic ASP.NET Web site. I'm not entirely sure it was made to work with this type of project (although it shouldn't matter) so I wanted to bring it up to everyone.
I can compile the contracts just fine but the code skips over them since I'm assuming it hasn't been enabled through the Properties Page like you would do in other project types (ie ASP.NET MVC). I've gone to the property page of the project (which displays a dialog instead of the typical properties page) in my ASP.NET web site but it does not yield the same menu options and as such, doesn't have a section devoted to Code Contracts.
Also, I have Microsoft Code Contracts properly enabled within a class library project that I use to separate my business logic from the web site. The contracts compile fine but when a contract is violated, it throws a rather uninformative "Exception of type 'System.ExecutionEngineException' was thrown" error with no inner exception. My contract specifies a message to display upon violation but it is nowhere within the exception. It simply halts the execution of the process (which I believe is the default functionality for Microsoft Code Contracts).
I can't find anywhere that explicitly states that a particular project type can or can't (or shouldn't) be used with Contracts so I just wanted to see if anyone has had this issue.
Thanks for any help!
I had the same problem and this is how I solved it:
In the Referenced Class Libraries, right click -> properties -> code contracts.
Make sure "perform contract checking" is checked. I had mine set to "Full"
Contract Reference Assembly: make sure it is set to "Build"
Save your changes.
In the Referenced Class Libraries that have no contracts in their code, set the Contract Reference Assembly to "Do Not Build".
Then in the MVC project, have the Code Contracts "perform contract checking" checked. I had mine set to "Full".
Hope that helps somebody.
This sounds less like a Contracts and more like a build/config issue. Have you tried to deploy a prebuilt website? Are you sure that your website code sees the contracts code? Is the ASP.NET runtime using the CLR 4.0, or does it see the earlier Microsoft.Contracts.dll? Etc.

Resources