Microsoft.Graph.ServiceException: Code: generalException

Craig Wright 11 Reputation points
2022-03-24T15:40:04.637+00:00

Hi,

i am having some issues with getting microsoft graph working with an IIS ASP.net Web Application

The issue i am having is when i am sending the request its sending it as HTTP v2.0 and i get the following error

i am using the recommended .net version from the docs for 4.6.2 but nothing i try seems to get past this error. could someone advise on anything that could help.

ive read up that 4.6.2 supports http v2.0 but for some reason even though its targeted for V4.6.2 it just keeps firing back this error any help would be much appreciated.

15:19:36 - Error Status Code: 0
Microsoft.Graph.ServiceException: Code: generalException
Message: An error occurred sending the request.
 ---> System.ArgumentException: Only HTTP/1.0 and HTTP/1.1 version requests are currently supported.
Parameter name: value
   at System.Net.HttpWebRequest.set_ProtocolVersion(Version value)
   at System.Net.Http.HttpClientHandler.CreateAndPrepareWebRequest(HttpRequestMessage request)
   at System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.RedirectHandler.<SendAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.RetryHandler.<SendAsync>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.CompressionHandler.<SendAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.AuthenticationHandler.<SendAsync>d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpClient.<FinishSendAsync>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.HttpProvider.<SendRequestAsync>d__19.MoveNext()
   --- End of inner exception stack trace ---
   at Microsoft.Graph.HttpProvider.<SendRequestAsync>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.HttpProvider.<SendAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.BaseRequest.<SendRequestAsync>d__40.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.BaseRequest.<SendAsync>d__34`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
Microsoft Security Microsoft Graph
{count} vote

4 answers

Sort by: Most helpful
  1. Jeffrey Holmes 6 Reputation points
    2022-06-29T11:56:00.413+00:00

    Try updating to 4.3.3 Released 10 minutes ago, resolved and working for me now. But i still got gray hair from this nightmare lol.......

    1 person found this answer helpful.
    0 comments No comments

  2. Tim Canham 1 Reputation point
    2022-03-31T00:23:07.203+00:00

    Hey Craig,

    Holy cr@p I got it working! I simply removed the <system.codedom> section from the web.config and it started working!

    Hope this helps you, too!

    Thanks,
    Tim


  3. Rhuck 1 Reputation point
    2022-09-27T16:50:51.607+00:00

    Adding
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

    to force 1.2 solved it for me,

    I had to remove the targetframework for httpruntime in the webconfig. This was a fix suggested in another solution that did not solve anything but changed the error so thought i was making progress.

    removed this from web.config
    <httpRuntime targetFramework="4.7.2" />

    0 comments No comments

  4. Robert Tomlinson 0 Reputation points
    2023-01-20T01:18:24.99+00:00

    I had to update a few registry keys to get .NET Framework under IIS to actually use TLS 1.2, which fixed my issue after recycling the web app. The following keys needed to be added:

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
    "SystemDefaultTlsVersions"=dword:00000001
    "SchUseStrongCrypto"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
    "SystemDefaultTlsVersions"=dword:00000001
    "SchUseStrongCrypto"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
    "SystemDefaultTlsVersions"=dword:00000001
    "SchUseStrongCrypto"=dword:00000001
    [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
    "SystemDefaultTlsVersions"=dword:00000001
    "SchUseStrongCrypto"=dword:00000001
    
    
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.