I'm new to SignalR. My .NET 6 SignalR server works fine with my .net client. But sometimes, server side produce many log entries like below. If I manually retart server, Server go back to normal and no such entries produced in log.
What are they? Why I got them every 15 seconds?
2022-09-30 17:20:02.847 +08:00 [INF] HTTP POST /parkingHub responded 200 in 0.1625 ms
2022-09-30 17:20:17.889 +08:00 [INF] HTTP POST /parkingHub responded 200 in 0.1524 ms
2022-09-30 17:20:33.887 +08:00 [INF] HTTP POST /parkingHub responded 200 in 0.5333 ms
2022-09-30 17:20:49.888 +08:00 [INF] HTTP POST /parkingHub responded 200 in 0.2478 ms
2022-09-30 17:21:05.876 +08:00 [INF] HTTP POST /parkingHub responded 200 in 0.6225 ms
2022-09-30 17:21:21.876 +08:00 [INF] HTTP POST /parkingHub responded 200 in 0.1872 ms
Related
Let's say there's 2 HTTP requests send to http server using the same underlying TCP connection almost at the same time.
How http server identify this two HTTP requests correctly(OR how http server parse these TCP connection bytes into 2 HTTP requests correctly) ?
For example :
request 1 : 2000 bytes
request 2 : 2000 bytes
http client http server
|---------req1 1000byte------->|
|---------req2 1000byte------->|
|---------req1 200byte-------->|
|---------req2 1000byte------->|
|---------req1 800byte-------->|
I've researched a bit to find out that the Status line is the the start line of an HTTP response. It contains the information such as the protocol version, a status text, status code. But why does it have to contain the protocol version again?
The HTTP version numbers are present in the request and response for HTTP/1.0 and 1.1. (HTTP/2 is quite different. When using a browser, the protocol is negotiated by the TLS connection wrapped around HTTP.)
RFC 2145 says,
An HTTP server SHOULD send a response version equal to the highest
version for which the server is at least conditionally compliant, and
whose major version is less than or equal to the one received in the
request. An HTTP server MUST NOT send a version for which it is not
at least conditionally compliant. A server MAY send a 505 (HTTP
Version Not Supported) response if cannot send a response using the
major version used in the client's request.
This means a server compatible with HTTP/1.1 should respond with HTTP/1.1 to both, HTTP/1.1 and HTTP/1.0 requests. A server supporting only HTTP/1.0, could respond to HTTP/1.1 request with HTTP/1.0 responses.
For example, if you send a HTTP/1.0 request to wikipedia.org,
$ nc wikipedia.org 80
GET / HTTP/1.0
HTTP/1.1 400
Date: Mon, 05 Aug 2019 18:03:20 GMT
Server: Varnish
...
the server responds with HTTP/1.1 (although with an error).
So the version number is also included in the response because it might be different from the one in the request.
i am getting two requests for every request made to server from browser
--> One Request Comes as HTTP/1.1
--> Other Request comes as HTTP/2.0
Using 3 Preview version of ASP.NET Core
Only in case of Dynamic request Static content loads via HTTP /1.1 only
Using Windows server 2016 (AWS) and IIS 10
Logs From server
2019-03-17T02:33:23.8121085+00:00 8000000a-0000-f800-b63f-84710c7967bb [INF] Request starting HTTP/1.1 GET https://www.WEbApp.com/
2019-03-17T02:33:23.8121085+00:00 8000000a-0000-f800-b63f-84710c7967bb [INF] Request starting HTTP/2.0 GET https://www.WEbApp.com/ (ca22a1cb)
2019-03-17T02:33:23.9317375+00:00 8000000a-0000-f800-b63f-84710c7967bb [INF] Executing endpoint '"WEbApp.GlobalController.GlobalController.Index (WEbApp)"'
2019-03-17T02:33:23.9444334+00:00 80000010-0000-f900-b63f-84710c7967bb [INF] Executing endpoint '"WEbApp.GlobalController.GlobalController.Index (WEbApp)
I am trying to establish a connection with server using SIM 900 modem.
at+cgdcont=1,"IP","airtelgprs.com" OK
at+cstt="airtelgprs.com","","" OK
at+ciicr OK
at+cifsr 100.67.249.40
at+cipstatus OK
STATE: IP STATUS
at+ciphead=1 OK
at+cipstart="tcp","mydomain.com","80"OK
CONNECT OK
at+cipsend
> GET http://mydomain.com/test=vts
Host:www.mydomain.com
Accept:*/*
Accept-Language:en-us
Connection:Keep-Alive
SEND OK
These are the commands that I have used with the responses. Everything is working fine. But all i am getting from the server is a 403 Bad Request response. I have tried to connect with some other domains also. All of them are giving the same Bad Request response.
Is there any problem with the HTTP Header request I am using?
The request line should end with a http version, e.g.
GET http://mydomain.com/test=vts HTTP/1.1
The syntax is
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
according to RFC2616.
I'm facing an annoying issue accessing SSAS through a HTTP/HTTPS connection using Basic Authentication.
Everything works except if you analyse the network traffic using a sniffer, each call is emitted twice. The first one is emitted without the "Authorization" header of the http protocol which provokes a 401 error. The second one sends the request correctly filled with the "Authorization" header. This is repeated again and again for each request... ?!
Httpwatch/fiddler or IIS logs
Sniffing the network calls and you will obtain:
# Result Protocol Host URL Body Content-Type
1 401 HTTP sql2008 /olap/msmdpump.dll 1293 text/html
2 200 HTTP sql2008 /olap/msmdpump.dll 2598 text/xml
3 401 HTTP sql2008 /olap/msmdpump.dll 1293 text/html
4 200 HTTP sql2008 /olap/msmdpump.dll 280 application/xml+xpress
5 401 HTTP sql2008 /olap/msmdpump.dll 1293 text/html
6 200 HTTP sql2008 /olap/msmdpump.dll 991 application/xml+xpress
7 401 HTTP sql2008 /olap/msmdpump.dll 1293 text/html
8 200 HTTP sql2008 /olap/msmdpump.dll 1787 application/xml+xpress
9 401 HTTP sql2008 /olap/msmdpump.dll 1293 text/html
10 200 HTTP sql2008 /olap/msmdpump.dll 197 application/xml+xpress
Any idea on how to bypass these recurrent authentications?
I updated to SQLServer 2008 R2 SP1 Cumulative Patch 4 with no success. The issue seems to come from ADOMD.NET or OleDB for Olap Driver.
Any help would be appreciated,
Regards,
Avinash Nigam