WCF / ASMX :: WCF Deadletter Queue Service Stops Picking Up Messages
Dec 15, 2010
I have a custom dead letter queue service to pick up messages from DLQ. This service picks up failed message from DLQ and tries to resend to a different end point. If the new endpoint doesn't work, it rolls back transaction. This works great. Here is the code.
{
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Single,
AddressFilterMode = AddressFilterMode.Any)]
public class FDPDLQService : IFDService
{
FDPManager _fdpManager = new FDPManager();
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
public void ProcessFDMessage(FDMessage message)
{
//System.Diagnostics.Debugger.Launch();
try
{
MsmqMessageProperty mqProp =
OperationContext.Current.IncomingMessageProperties[MsmqMessageProperty.Name] as MsmqMessageProperty;
// if message log required, and configured, log the incoming message
try
{
ChannelFactory<IFDPRouter> factory = new ChannelFactory<IFDPRouter>("IFDPRouter_EP");
IFDPRouter proxy = factory.CreateChannel();
string ep = proxy.GetNextEPForGivenEP(OperationContext.Current.IncomingMessageHeaders.To.ToString());
if (ep == null || ep == string.Empty)
{
throw new EndpointNotFoundException(Common.Constants.FDP_NOT_FOUND_EXCEPTION_MESSAGE);
}
// Process message with next end point available
_fdpManager.ProcessFDMessage(message, ep);
}
catch (EndpointNotFoundException enfe)
{
ExceptionManager.HandleException(enfe);
Transaction.Current.Rollback();
//throw;
}
catch (Exception ex)
{
ExceptionManager.HandleException(ex);
Transaction.Current.Rollback();
//throw;
}
}
}
}
Below is config entries.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="DLQServiceBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" deadLetterQueue="Custom" customDeadLetterQueue ="net.msmq://localhost/private/FDPDLQ"
durable="true" exactlyOnce="true" maxReceivedMessageSize="65536"
maxRetryCycles="2" receiveErrorHandling="Fault" receiveRetryCount="5"
retryCycleDelay="00:30:00" timeToLive="00:01:00" useSourceJournal="false"
useMsmqTracing="false" queueTransferProtocol="Native" maxBufferPoolSize="524288"
useActiveDirectory="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport msmqAuthenticationMode="WindowsDomain" msmqEncryptionAlgorithm="RC4Stream"
msmqProtectionLevel="Sign" msmqSecureHashAlgorithm="Sha1" />
<message clientCredentialType="Windows" />
</security>
<!--deadLetterQueue="System">-->
</binding>
<binding name="DefaultBinding" >
<security mode="None" />
</binding>
<binding name="FDService_EP" closeTimeout="00:01:00" openTimeout="00:01:00" deadLetterQueue="Custom" customDeadLetterQueue ="net.msmq://localhost/private/FDPDLQ"
receiveTimeout="00:10:00" sendTimeout="00:01:00"
durable="true" exactlyOnce="true" maxReceivedMessageSize="65536"
maxRetryCycles="2" receiveErrorHandling="Fault" receiveRetryCount="5"
retryCycleDelay="00:30:00" timeToLive="00:01:00" useSourceJournal="false"
useMsmqTracing="false" queueTransferProtocol="Native" maxBufferPoolSize="524288"
useActiveDirectory="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport msmqAuthenticationMode="WindowsDomain" msmqEncryptionAlgorithm="RC4Stream"
msmqProtectionLevel="Sign" msmqSecureHashAlgorithm="Sha1" />
<message clientCredentialType="Windows" />
</security>
</binding>
<binding name="FDChecking_EP" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" deadLetterQueue="System"
durable="true" exactlyOnce="true" maxReceivedMessageSize="65536"
maxRetryCycles="2" receiveErrorHandling="Fault" receiveRetryCount="5"
retryCycleDelay="00:30:00" timeToLive="1.00:00:00" useSourceJournal="false"
useMsmqTracing="false" queueTransferProtocol="Native" maxBufferPoolSize="524288"
useActiveDirectory="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport msmqAuthenticationMode="WindowsDomain" msmqEncryptionAlgorithm="RC4Stream"
msmqProtectionLevel="Sign" msmqSecureHashAlgorithm="Sha1" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netMsmqBinding>
<netNamedPipeBinding>
<binding name="Teletrac.EFX.Interfaces.FDService.IFDPRouter" />
</netNamedPipeBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="DLQServiceBehaviour">
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Teletrac.Customer.Services.FDPDLQService.FDPDLQService" >
<endpoint address="net.msmq://localhost/private/FDPDLQ" binding="netMsmqBinding"
contract="FDPServiceRef.IFDService"
bindingConfiguration="DefaultBinding"></endpoint>
</service>
</services>
<client>
<endpoint address="net.msmq://localhost/private/fdmessageQueue"
binding="netMsmqBinding" bindingConfiguration="DLQServiceBinding"
contract="FDPServiceRef.IFDService" name="FDService_EP" />
</client>
</system.serviceModel>
</configuration>
This works great.
But if all endpoints are not available for a long period of time, and if service rolls message back to the DLQ for a long period of time, after a certain period of time service stops picking up messages from DLQ. I am not sure which configuration is responsible for this.
View 2 Replies
Similar Messages:
Mar 17, 2011
I've got a WCF web service that runs fine at the moment but there is talk about using it very heavily soon. As part of it's normal process it writes a file out, then reads it back in again (don't ask why, I know it's stupid). I'm concerned that if we start hitting it with lots of requests then the following might happen.
1. Request 1 writes the file out.
2. Request 2 comes in and overwrites the file.
3. Request 1 reads the file back in but this is now the wrong file.
My understanding is that the requests would naturally queue up so that request 2 wouldn't start until request 1 had finished, but I'm not totally sure.
View 1 Replies
Mar 15, 2011
I am ASP.NET developer.
i have run one program in host server at a particular interval (lets say in each & every 1 hour) by using web service. but on my server web service stops automatically after 2 or 3 hour.
View 4 Replies
Dec 15, 2010
We have a customer who are using HP Web Inspect to test for vulnerabilities in our software.
The web inspect tool is complaining about about error messages being returned when a request such as the following is made [URL].
The ASP.Net framework returns a page with the following text content and a 500 status code.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
[code]....
but the error seems not be an unhandled error and so neither 500 page is shown.
View 1 Replies
Sep 20, 2010
I have a big problem with my SMTP server for sending emails. It's down often. At this point I am using this code:
MailMessage mailMsg = new MailMessage();
mailMsg.From = new MailAddress("fromMail@example.com");
mailMsg.To.Add("toMail@example.com");
mailMsg.Subject = "...";
mailMsg.IsBodyHtml = true;
mailMsg.BodyEncoding = Encoding.UTF8;
mailMsg.Body = "Mail";
mailMsg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("account@gmail.com", "password");
client.Port = 456;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Send(mailMsg);
But, when my SMTP server is down I want to put all the emails in a queue and when it recovers I want to send them one a time. Is there any way how to do this programatically in C#?
View 1 Replies
Nov 22, 2010
While i was writing a piece of code in C# using ASP.NET i needed to create a message queue to store fault messages. However, I couldn't find the System.Messaging namespace in the namespace library in Visual Studio 2010. Does anyone know how can I use message queuing now?
View 1 Replies
Aug 26, 2010
What is the most efficient way to transmit messages in WCF? I've done a few basic walkthroughs of WCF and upon analyzing the XML transmission I saw that they were very large by default... Containing what appears to me, as a lot of unnecessary information, for my needs. I'm looking for a way to send the shortest messages possible. How can I trim as much as possible from the XML? Can I remove all the header information. What approach for sending the shortest messages possible using XML in WCF?
View 3 Replies
Dec 21, 2010
Currently i'm developing an apllication that sends sms via the asp.net. I'm using msmq for the queuing incase of multiple sending of sms. The wcf will then check for new queue and using teh queue to send out a sms. I've a few question.How do i create a new queue for the msmq via asp.net
View 1 Replies
Feb 28, 2011
I have a [WebMethod] within an aspx.cs file. It seems that whenever a second call to the method is made via AJAX before the first call is fully executed, the web method completely stops functioning until the page is reloaded.
View 2 Replies
Jul 15, 2010
I am creating an application that uses jQuery to make ajax calls to ASP.NET WCF Web Service. Everything works fine most of the time but eventually (about twice per week) the service stops working with the error below. The only solution is to clear the ASP.NET Temporary Files. The problem seems to start by the time the application pool recycles but not on each recycle. Please help as I'm trying to figure this out for weeks now!
WebHost failed to process a request.
Sender Information:
System.ServiceModel.ServiceHostingEnvironment+HostingManager/6957828
Exception:
System.ServiceModel.ServiceActivationException:
The service '/Chat2/Chat.svc' cannot be activated due to an exception during compilation. The exception message is: Could not load file or assembly 'App_Web_vpupi5wr,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.. --->
System.IO.FileNotFoundException: Could not load file or assembly'App_Web_vpupi5wr, Version=0.0.0.0,Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
View 2 Replies
May 5, 2010
if i have the web application with many pages like add order page, edit order page, and delete order page actually they also interact with the Sql Server 2008 and i also create web service page call Sales_Service.asmx. i know just i need to put something like query into Web Method in Sales_Service.asmx but i have a lot of queries, i don't know which query i should put into it and how the web page call the Sales_Services.asmx
View 2 Replies
Nov 8, 2010
A customer reported that our asmx web service is continually increasing in memory (mem usage as well as private bytes). We are able to reproduce the problem in our lab with Windows 2003 Server SP2 (fully patched) on some of the machines. The customer is using Windows 2008.
We created a Hello World web service targeting the 2.0 framework built under VS2005 SP1 and a test client that continues to call it. The memory increases steadily - approximately 40K per client request. If the test app is paused, the memory remains the same. When it is closed, the memory drops. Explicit calling of GC.Collect does not drop the memory.
We have run the memory profiler on the service and the leak is all native memory. We have uninstalled/re-installed the Framework on one of the machines but no difference. To our knowledge all of the security and IIS settings are not modified. We have compared app pool, default web site and virtual directory properties to machines that have no problem and they are identical.
View 11 Replies
Mar 17, 2011
I have a .net app developed in .net 4.0 version. And I implemented an asmx web service in this. Now I want to call one of the webservice method in another classis ASP application java script function.
View 2 Replies
Mar 28, 2011
Is it possible to run a web service as a particular user/service account in the same way a Windows service can?I have a service account used for connecting to the DB and want to run the webservice under this account as the users using the webservice won't have DB access.The way I see to do it is to include the Impersonate option in the Web.config file, but is there any better way to do this?
View 1 Replies
Mar 17, 2011
How to create an instance of web service without adding web service reference? How to identify the server address/name where the web service is hosted from C# code?
View 1 Replies
May 25, 2010
My WCF Client calls my WCF Service which then calls ASMX Web Service. The problem is i have configured my wcf client and wcf service to windows credentials type but when wcf service calls asmx service the user credentials (default windowsidentity) is not passed to asmx service.
In WCF Service i am able to get user identity by using : Thread.CurrentPrincipal.Identity.Name;
WCF Service - i have disabled anonymous access and enabled windows authentication. ASMX Web Service - i have disabled anonymous access and enabled windows authentication.
WCF Service Config
[Code]....
View 1 Replies
Aug 4, 2010
i have created a normal web service and i want to host it outside IIS. one idea i got is to use window service as hosting environment. i have created a web service and hosted it window service and its window service is running now.would anybody please let me know that how can i call web service hosted in window service binded over soap.tcp. here is my sample code.
[Code]....
[Code]....
View 1 Replies
May 26, 2010
I want to develop a web service that handle another web service's event. (C#.Net 3.5 framework)
View 1 Replies
Aug 30, 2010
How to create simple web service in VS2010 Professional (trial version). There is no template to do this. I am not trying to create WCF service here.
View 2 Replies
Sep 20, 2010
I have running existing web service in framework 2.0, but i want to convert all my service to framework 3.5 WCF Service..
View 1 Replies
Feb 7, 2011
How do I add the WCF service built using VS2010 as a service reference to a Winforms app which is written in VB6?
View 1 Replies
Feb 2, 2011
I am keep getting an error that "Service Error : wbsTest failed" where wbsTest is my webservice.
The error comes up frequently enough for the user - normally reproducible within a minute or so of working with an application.
A bit of background: An user is a remote user accessing application hosted on our servers over https. He is software firewalled and his connection isn't the fastest but it is responsive enough. When errors do not present themselves, page loads are fairly quick.
View 8 Replies
Aug 10, 2010
How to manage user messages to avoid hardcoding messages accross the web application.
View 17 Replies
Jan 26, 2010
For error messages, validation faults etc you have
ModelState.AddErrorMessage("Fool!");
But, where do you put success responses like "You successfully transfered alot of money to your ex." + "Your balance is now zero". I still want to set it at the controller level and preferably in key-value way, the same way as errormessages but without invalidating the modelstate.
View 3 Replies
May 24, 2010
I want to access simple web service inside WCF service. How can i achieve it?
View 2 Replies