Hi, our service works on mono(debian8x64).
When sending a request the server returns such response.
Please help, what could be the problem?
ServiceBase::Service Exception
Message: The remote server returned an error: (429) Too Many Requests.
Source: System
Target site: System.Net.WebResponse EndGetResponse(System.IAsyncResult)
Stack trace: at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) <0x404fe570 + 0x001ab> in :0
at System.Threading.Tasks.TaskFactory1[TResult].FromAsyncCoreLogic (IAsyncResult iar, System.Func2 endFunction, System.Action1 endAction, System.Threading.Tasks.Task1 promise, Boolean requiresSynchronization) <0x404fe120 + 0x00093> in :0
You’re likely hitting a load issue with Mono’s HTTP Stack.
Please note the future for running .NET and ServiceStack on Linux is to use .NET Core which is fast, stable and well-supported and ServiceStack just released support for in the latest release: http://docs.servicestack.net/releases/v4.5.2.html
If you’re using ServiceStack on Mono I’d recommend upgrading when you can, which is significantly faster and more stable
Which service do you call with HttpWebRequest? Is it your service or it’s some third-party service? Do you make this request from your ServiceStack service or just from a client? Need some more details about the place where this exception happen, but this could be possible due infinite loop in calling the service.
For example you make request to your /service1. In /service1 code makes HttpWebRequest to the same /service1 directly or indirectly through calling /service2 which calls /service1 again. In this case number of requests in System.Web requests queue will be exhausted and the error Too Many Requests will arise.
If service make a HttpWebRequest call to third-party service it may return Too Many Requests if you call it too often.
Function unloads data on the server.
Several portions on 7 MB are unloaded.
Data in the json format.
In functions no references to other services occur, only inquiries to a database.
web servers which you use to run ServiceStack services
show the full stack trace of exception, which is occured on your server. Before logging the exception on the server please set environment variable MONO_OPTIONS=--debug prior starting up server. For example, if you use xsp4, start it with MONO_OPTIONS=--debug xsp4 the same with fastcgi-mono-server4 or hyperfastcgi4.
This is other error. Do you use fastcgi upstream or proxy? If you use fastcgi upstream then proxy settings will not apply to it. Nginx fastcgi options begin with fastcgi_ prefix, list of commands you can find here. But you need to check first that fastcgi server is working and check its logs. If you use fastcgi upstream, which fastcgi server do you use? If you use proxy what is the host endpoint? Is it self-hosted app or something else? Without exception stack trace from the server for first error it’s very difficult to understand where the exception is raised and what could be the cause of the exception.