C# - How To Configure Endpoint For Web Service Declared With WebService() Attribute
Oct 13, 2010
We have a C# Web Service that declares itself using attributes. The code-behind file looks like:
[WebService(Namespace = "http://the.web.service.url/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public sealed class TheWebservice : WebService
{
[WebMethod]
public SomeObject TheFunction()
...
The web services has worked for a long time now. Recently, one request resulted in an error:
The maximum string content length quota (8192) has been exceeded while reading XML data. After searching around, I found that there is a setting maxStringContentLength that can increase the meaximum size. The post says you can configure this setting in Web.config in the BasicHttpBinding section. You can then specify that BasicHttpBinding in an endpoint section. But since we declare the webservice using the WebService attribute in the code-behind file, we do not have an endpoint section.
Is there a way to specify an endpoint using a declarative attribute? Alternatively, is it possible to switch from attribute to web.config mode without breaking existing clients? Am I confusing WCF and its predecessor here?
I do not understand what is happening here. If I run this same bizApp referenced from a webpage my code finds the endpoint in either my web.config file for the webpage. I copy that same section and paste it into the New version of web page that uses a new WCF that contains this same bizApp and I get a can not find endpoint.
I have a Web service currently in an ASMX file. I want to move this code into its own class library project which generates a DLL. I want to be able to drop this DLL into any Web application and have it work. However, without an ASMX file, I have no URL endpoint. How do I get around this? Essentially, I want to run a Web service without having to distribute an ASMX. I just want to distribute a DLL. Can I map the endpoint for the Web service in the web.config, or something? (I think that perhaps WCF might do this, but one look at the config for that, and it feels like the cure is worse than the disease...)
I get "Endpoint not found" when attempting to access my service via the browser at
[URL]
I get "Error: Cannot obtain Metadata from http://localhost:10093/Services/Service1.svc" when attempting to access the same address from the wcftestclient.
If I place a breakpoint in the service implementation it is hit, so I assume the svc file is setup correctly:
I just hit the following issue: I am calling a web service that returns a serialized JSON object let's say: __type, FirstName, LastName (.net object Person with properties FirstName and LastName). __type's value is Test.Person
I have created a JS object using Type.registerNameSpace/registerClass called Demo.Person and it is registered on the page using the ScriptManager. Everything is working fine; I am able to get data from the server on the call back.
Is it possible to make the returned object from the web service be an instance of the declared JavaScript Demo.Person class? The idea would be to call a method like result.getFullName() on the client side without having to copy all the properties. This is just a simple scenario for more complex objects.
I am developing an ASP.NET Web Service and a PHP Web site consuming the Web Service. They are meant to be run on different machines. However, only for development purposes, I need to run both on my machine. I cannot use virtual machines.
I would like to know if it is possible to configure IIS Apache to host both my Web Service and my Web site? Or, do I need to host the PHP site using Apache?
I am using
IIS 7.5 Apache HTTP Server 2.2 (NOTE: I have nothing against Apache. In fact, so far I like it more than IIS, however, I would rather not have two Web server applications installed in the same machine.)m PHP 5.3.4 .NET Framework 2.0 3.0 or 3.5 (whichever comes with Visual Studio 2008)mod_aspdotnet for Apache 2.2
I haven't deployed behind a load balancer before. My customer has a WCF service built and tested on servers using a service model configuration that is relatively straightforward. It provides a service to return an image of a map for another application. To get the map, it calls other services.
The service was built in Visual Studio 2010 targeting the 3.5 framework. The customer is using IIS 7.5 and an F5 load balancer. When moving to the production server, the Web.config was changed to add the load balancer behavior and specify the endpoint to show the physical and logical address of the service:
[Code].....
There was a problem when the service was deployed to a server behind the load balancer. When I try to call the service from WCFStorm or WebServiceStudio I get the message "The provided URI scheme 'https' is invalid; expected 'http'.
The endpoints for the service itself look right to me. However in the development and testing versions of the config, the client section uses http instead of http, while on the production servers it uses the load balancer's https address. This seems like it should be obvious, but we're missing it.
I have almost the same problem as you have described in [URL] service. I have a asp.net webservice that calls a WCF service. On my development machine this is working fine. But if i deploy my ASP.net Webservice it is not working. Both the ASP Webservice en WCF service needs my cridentials. How did you solved your problem. In the logging of the WCF service I see that my credentials is not passing to WCF.
We have two servers, both are containing a local application connecting to local web service, applications and services are identical on both servers. One of the servers work just fine, The other one is just dead, I have impression the the security configuration are different on those servers. What prevents an application X from connecting a web-service, given that another application y on the same server can connect to it. and X is a windows service. What I should check, what is chances?
I'm working on a project where I'm replacing an asmx webservice with a wcf service. However, during a transition period, I'd like to have both work for our customers. So I've achieved this somewhat, however I've run into a wall during some testing. I'm getting the following message:
Test method IntegrationTests.StrictMatchTests.StrictProviderPass threw exception: System.Web.Services.Protocols.SoapHeaderException: The message with Action [URL] cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None)..
I have an asmx file exposed, and I can consume it as a traditional web service. However, they don't seem to be compatible with the older service. If I consume the new service, it works just fine. But I would like this initial transition to be transparent to the end user, and gradually have them consume the wcf service over time.
I have a website running on Vista with IIS 7. I call a webservice from the client script code and I always get the error that my service is not defined.
The same website works right when running from web developer server of visual studio.
In IIS I have a virtual directory with only windows authentication enabled. From Javascript I call into a ASMX webservice. From the ASMX webservice I make a call to the SharePoint Search.asmx Webservice. whatever I try I keep getting the followin gerror message:
"The request failed with HTTP status 401: Unauthorized"
I use the following code to call the SharePoint webservice
[Code]....
My web.config settings are:
[Code]....
The Sharepoint farm is configured to use NTLM authentication.
Strangely everything works when I am testing in Visual Studio using the builtin webservice, but when I deply to my local IIS or Test Server it breaks.
I created a simple Master Page in Visual Studio 2008:
<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
and got green underlined 'Master' with two warning messages: 1.Validation (ASP.NET): This attribute name must be followed byan equal (=) sign and a value. If the value is in quotation marks, the quotation marks must match. 2. Validation (ASP.NET): Attribute 'Master' is not a valid attribute of element 'Control'.How I can get rid of the messages?
I'm working on a web service that uses ASP.NET security model (i.e. with AspNetCompatibilityRequirements set to allowed). Like many others, I got an error saying the Anonymous access is required because the mexHttpBinding requires it and the only way to get around it is to remove the mex endpoint from each service as described here:
[URL]
I thought by removing mex endpoint I will no longer able to generate WSDL or add a reference to the service from Visual Studio but to my surprise everything still works. I quickly googled the "mex binding" but most web sites just say it's for "Metadata Exchange" without going into too much detail on what it actually does.
I have to invoke SSIS packages from web service in the most secure way. I think that windows authentication will be secure but i am not sure. I do not have much knowledge about how to achieve this and the information on the internet is very distributed.
I had to move a WCF service (IIS hosted) to a new address. This service is called by a webforms web site on a different site in the same instance of IIS. I checked the WCF service is available and working by calling it directly from a browser.
I then did the following
updated the Service Reference folder in my consuming website updated the web.config servicemodel section (it was auto updated by changing the Service Reference) re-built and deployed libraries using the WCF service to the websites bin folder Stopped the consuming website in IIS and deleted files from Temporary ASP.NET Files folder Re-started IIS and deleted *ALL* files from Temporary ASP.NET files When I browse to a page that calls the WCF service I get the error;
EndpointNotFoundException
There was no endpoint listening at <<Old endpoint address>> that could accept the message
How can I force my website to use the new WCF endpoint? Do I need to re-start the web server?