I'm trying to add the ReportExecution2005 Web Service into my project to allow me to execute reports from within my program.
We do this in other programs that are written in VB.net however, these programs have a namespace added for ReportingService that's around 3000 lines of code as the company has always struggled with adding the ReportExecution web service. Before I begin converting this code from VB.net to C# I thought I'd try again in getting it working the proper way.
I'm currently going to the Add Web Reference page, and putting the following:
http://reportserver/Reports/ReportExecution2005.asmx
This is returning a 404 error saying the resource can't be found. I've checked the URL over and over and got colleagues too. So I'm not really sure what else the issue could be.
Is there something that needs adding onto our report server for me to be able to add the web reference?
If anyone has had this issue before how did you solve it?
Any tips appreciated.
I have a windows app to test connecting to a 3rd party web service.
I've created a service reference using the wsdl that was provided.
The way the web service will work is a 4 step process.
Method call to get session ID.
Method call to pass arguments
Method call to execute arguments.
Method call to get results.
Now here is the strange part:
I can make the first call no issue.
Calls 2 and 3 do not work from my . net appliaction.
I get the error:
Error in deserializing body of reply message for operation 'setArguments'. End element 'Body' from namespace 'http://www.w3.org/2003/05/soap-envelope' expected. Found element 'ns:setArgumentsResponse'
I am at a total loss with this.
What I've done.
I am capturing my post in Fiddler.
When I examine the body everything looks correct.
If I take the same response that I captured and post it in Fiddler it works.
I've tried the this in Python at it works.
Is there some obscure setting that I could possibly be missing in my application?
My findings in step 1 should prove that I am creating a valid request. Could . NET possibly be choking on the response?
Any suggestions would be appreciated.
FYI:
binding="customBinding"
I've also tried basicBinding and got the same results.
EDIT:
I just wrapped a try/catch around each method and when I call method 4 I get a result. So the error must be on the response. Right?
Issues appears to be that I am consuming a Java web service.
I originally added it as a Service Reference which is causing my serialization errors on the response.
I removed this reference and re-added a Web Reference and it appears to be working without the serialization error.
I´m trying to create a client in C# to a web service which (I suppose) is written in Java. It´s my first time trying to write a client, so I´m following the instructions on MSDN, but I´m stuck on a problem with Add Reference. When I open the Add Service Reference dialog and add the URL, an error occurs:
There was an error downloading 'http://geoportal.cuzk.cz/WCTService/WCTService.svc'.
The request failed with HTTP status 404: Not Found.
Metadata contains a reference that cannot be resolved: 'http://geoportal.cuzk.cz/WCTService/WCTService.svc'.
There was no endpoint listening at http://geoportal.cuzk.cz/WCTService/WCTService.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
The remote server returned an error: (404) Not Found.
If the service is defined in the current solution, try building the solution and adding the service reference again.
What should my next step be? I don´t know what I should do with this!
(It is a coordinates-transformation service from the Czech Republic.)
For more information:
Property services (GetCapabilities)
http://geoportal.cuzk.cz/WCTService/WCTService.svc/get?
Localization services:
http://geoportal.cuzk.cz/WCTService/WCTService.svc/get?request=GetCapabilities&service=WCTS
I was facing a similar situation in which I had created a WCF Service (Employee.svc) and later changed the named to EmployeeService.svc. WCF project compiled just fine but when I was trying to add service reference from by UI Client, I was getting following error:
Metadata contains a reference that cannot be resolved: 'http://localhost:2278/EmployeeService.svc?wsdl'.
The document format is not recognized (the content type is 'text/html; charset=UTF-8').
Metadata contains a reference that cannot be resolved: 'http://localhost:2278/EmployeeService.svc'.
There was no endpoint listening at 'http://localhost:2278/EmployeeService.svc' that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.
The remote server returned an error: (404) Not Found.
If the service is defined in the current solution, try building the solution and adding the service reference again.
I resolved it by replacing the correct service class name everywhere. In my case, it should have been EmployeeService and NOT employee. The left out place was in the markup code of svc file:
<%# ServiceHost Language="C#" Debug="true" Service="WCFServiceHost.**Employee**" CodeBehind="EmployeeService.svc.cs" %>
Changed it to
<%# ServiceHost Language="C#" Debug="true" Service="WCFServiceHost.**EmployeeService**" CodeBehind="EmployeeService.svc.cs" %>
And it started working again!!! Dont forget to build your WCF project after changing the service name.
I tried browsing to http://geoportal.cuzk.cz/WCTService/WCTService.svc?wsdl. It looks like this service is not exposing metadata.
I did a bit of googling on OpenGIS, and I think you need to have a look at this article:
OpenGIS with .NET
You won't be able to just add a service reference and go. It looks like you need to craft a concrete WSDL.
There may be a client-side library you can use / customize to assist with integration. Have a look at Stack Overflow question Using MySQL GeoSpatial data types in .NET.
I know this is an old thread and has already been resolved, but I just finished troubleshooting this exact issue, and none of the resolutions presented here worked for me. Wanted to share my resolution in case anyone else runs into this thread with a similar issue.
My ENTIRE issue stemmed from a bad Refactor->Rename operation. I recently purchased Resharper for my dev team and Resharper did not like the name of our service implementation name. We had named it "WCFAccess" and Resharper wanted the name "WcfAccess". I had just published an update, had the release safely isolated in its own release branch in git, and figured this was a good time to perform a rename on the develop branch and shut Resharper up about the naming. I used Refactor->Rename to change the name of the file to match the naming convention we had defined in the Resharper configuration. The rename operation completed, the solution compiled and ran, time goes on and the WCF rename was forgotten.
Fast forward a couple weeks, and its time to deploy out web services to the test environment for regression testing. The solution compiled successfully, published successfully, then gave me the EXACT error that the OP posted. What I ended up finding out is that the Rename operation from weeks ago ONLY UPDATED SOURCE CODE REFERENCES to the old name and did not rename MARKUP. When I navigated out to our web server where the service was published to and double clicked on the .svc file, it opened the markup in Visual Studio and I noticed that the character casing of the CodeBehind="ServiceNameHere.svc.vb" was inconstant with the new naming convention. Updating the markup and web.config files to reference the correct character casing resolved my issue.
I hope this helps someone. It was incredibly frustrating to troubleshoot
(Please don't hate me for using VB.Net, I inherited this application) :-)
Is the service definitely up and running before you try to add a service reference? If it exposes meta data, does it have a service behaviour or equivalent configured? Have you configured your firewall correctly?
While adding service reference to the client application, metadata is not accessible from service to client application. hence The remote server returned an error: (404) Not Found. Actually we can host the WCF service as follows:
Self hosting(console application)
IIS Hosting
WAS Hosting
window service hosting.
if you are using self hosting then you need to host the service in console application and run the service(run the console application) and then add the service reference to the client application, then metadata would be exchange. If service is not running then while adding service reference to the client application then 404 not found error would be getting. Same process would follow for all the hosting type. first run the service then add service reference.
I had the same problem happen to me earlier today. The webservice was running fine on local host but for some reason, I was having a 400 when trying to add the service reference in another project.
My error was caused by setting the [DataMember] annotation instead of the [EnumMember] annotation on an enum of the service. Changing it solved my issue.
The webservices doesn't run.
If you don't have access to the server where this service run, you're blocked.
Otherwise, you need to check if the server run, etc. As I don't know how the Java webservice is run, I can't help you further.
I have to write a windows application in c# which application is able to consume said webservice.
I am using VS2010 with .Net 4
I added the service reference and the code compiles without any error, but when i run it i get a ProtocolException with the text:
The content type "multipart/related; type="application/xop+xml";
boundary="----=_Part_0_159582014.1283501395804";
start="";
start-info="application/soap+xml"" of the response does not match the
binding (application/soap+xml; charset=utf-8)
When i try it with a VB sample provided by the developers of the webservice everything works fine.
Im totally lost here, googled since yesterday, came up with nothing... Anyone knows whats the problem there?
Ok finally figured it out.
You need to manually edit the app.config file of your application and change all occurences of "textMessageEncoding" to "motmMessageEncoding" that will do the trick
no motmMessageEncoding -> mtomMessageEncoding
you need to make sure that your application supports MTOM. This
requires a change to your app.config. More details can be found here:
http://www.tomtomwork.com/en/webfleet/connect/blog.xml - scroll down
to the section "Updated Visual Basic example now uses SOAP, too"
Try adding a Web Reference rather than a Service Reference and see if that makes any difference. When you select Add Service Reference, click "Advanced..." then "Add Web Reference..." to bring up the old style reference screen.
I'm trying to import a Java axis web service into C# to be used in my application; however, it is giving me the following error: Attempted to write schema for bad QName
Any idea what this could be? I've imported schema before no problem, but this one won't budge.
Also, it's important to note that whenever I click the link to the WSDL file for this web service I get an HTTP 500 error. Whenever I click any other WSDL web service link in the group it goes right to the WSDL schema page. Obviously these two incidents are connected... I'm just not sure how.
Any thoughts are appreciated.
Thank you.
The HTTP 500 error is your problem. If you can get a local copy of the wsdl/schemas you should be able to bring them into your c# application. If you cannot browse to the WSDL c# is not going to be able to suck in the wsdl/schemas and generate the appropriate client code.