两次调用WebApi时ServerProtocolViolation错误

时间:2019-07-11 20:01:00

标签: c#

我使用c#在Visual Studio中创建了WebApi服务器。 客户端应用程序通过以下方式调用服务:

string restMethod = "api/ClientImport/GetOffene/";
var url = new Uri(_client.BaseAddress.ToString() + restMethod + _credString);
HttpResponseMessage response = await _client.GetAsync(url);

第一次运行正常。 如果我第二次尝试从客户端使用此服务,它将始终失败,并出现ServerProtocolViolation异常。

如果我再试一次,它将再次正常运行。然后,在第二次尝试时,会发生相同的错误。 另外,当我尝试调用其他方法时,第二个方法总是会崩溃。

这是例外:

  
      
  • ex Count = 1 System.Exception {System.AggregateException}
  •   
  • 数据{System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}       HResult -2146233088 int       HelpLink空字符串
  •   
  • InnerException {“在应用程序中发送请求。”} System.Exception {System.Net.Http.HttpRequestException}
  •   
  • 数据{System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}       计数0 int       IsFixedSize假布尔       IsReadOnly错误布尔值       IsSynchronized错误布尔值
  •   
  • 键{System.Collections.ListDictionaryInternal.NodeKeyValueCollection} System.Collections.ICollection {System.Collections.ListDictionaryInternal.NodeKeyValueCollection}       SyncRoot {object}对象
  •   
  • 值{System.Collections.ListDictionaryInternal.NodeKeyValueCollection} System.Collections.ICollection {System.Collections.ListDictionaryInternal.NodeKeyValueCollection}
  •   
  • Nichtöffentliche成员
  •   
  • Ergebnisansicht Beim Aufklappen der Ergebnisansicht与IEnumerableaufgeführt。
          HResult -2146233088 int       HelpLink空字符串
  •   
  • InnerException {“ Der Server hat eine Protokollverletzungausgeführt.. Section = ResponseStatusLine”} System.Exception {System.Net.WebException}
  •   
  • 数据{System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}       HResult -2146233079 int       HelpLink空字符串
  •   
  • InnerException null System.Exception       消息“ Der Server hat eine Protokollverletzungausgeführt.. Section = ResponseStatusLine”字符串       响应为空System.Net.WebResponse       源“系统”字符串       StackTrace“ bei System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)\ r \ n bei System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)”字符串       状态ServerProtocolViolation System.Net.WebExceptionStatus
  •   
  • TargetSite {System.Net.WebResponse EndGetResponse(System.IAsyncResult)} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}       属性公共|虚拟| HideBySig System.Reflection.MethodAttributes       呼叫公约标准| HasThis System.Reflection.CallingConventions       ContainsGenericParameters false bool
  •   
  • CustomAttributes Count = 1 System.Collections.Generic.IEnumerable {System.Collections.ObjectModel.ReadOnlyCollection}
  •   
  • DeclaringType {名称=“ HttpWebRequest” FullName =“ System.Net.HttpWebRequest”} System.Type {System.RuntimeType}       IsAbstract假布尔       IsAssembly假布尔       IsConstructor错误布尔       IsFamily虚假布尔       IsFamilyAndAssembly假布尔       IsFamilyOrAssembly假布尔       IsFinal假布尔       IsGenericMethod错误布尔       IsGenericMethodDefinition假布尔       IsHideBySig真布尔       IsPrivate假布尔       IsPublic真布尔       IsSecurityCritical真布尔       IsSecuritySafeCritical真布尔       IsSecurityTransparent错误布尔       IsSpecialName错误布尔值       IsStatic错误布尔       IsVirtual真布尔       MemberType方法System.Reflection.MemberTypes       MetadataToken 100665886 int
  •   
  • MethodHandle {System.RuntimeMethodHandle} System.RuntimeMethodHandle       MethodImplementationFlags IL System.Reflection.MethodImplAttributes
  •   
  • 模块{System.dll} System.Reflection.Module {System.Reflection.RuntimeModule}       名称“ EndGetResponse”字符串
  •   
  • ReflectedType {名称=“ HttpWebRequest” FullName =“ System.Net.HttpWebRequest”} System.Type {System.RuntimeType}
  •   
  • ReturnParameter {System.Net.WebResponse} System.Reflection.ParameterInfo {System.Reflection.RuntimeParameterInfo}
  •   
  • ReturnType {名称=“ WebResponse” FullName =“ System.Net.WebResponse”} System.Type {System.RuntimeType}
  •   
  • ReturnTypeCustomAttributes {System.Net.WebResponse} System.Reflection.ICustomAttributeProvider {System.Reflection.RuntimeParameterInfo}
  •   
  • Nichtöffentliche成员
  •   
  • Statische成员
  •   
  • Nichtöffentliche会员
          消息“ Fehler beim Senden der Anforderung。”串       源“ mscorlib”字符串       System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\ r \ n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n在System.Runtime.CompilerServices.TaskAwaiter`1。 ()\ r \ n位于C:\ Projekte \ Client \ DDS.xxx.Client \ DDS.xxx.Client.Engine \ RestApiConnector.cs:Zeile 82中的DDS.xxx.Client.Engine.RestApiConnector.d__6.MoveNext() ”。字符串
  •   
  • TargetSite {无效ThrowForNonSuccess(System.Threading.Tasks.Task)} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}
  •   
  • Statische成员
  •   
  • Nichtöffentliche成员
  •   
  • InnerExceptions计数= 1 System.Collections.ObjectModel.ReadOnlyCollection       消息“ Mindestens ein Fehler ist aufgetreten”。串       源“ mscorlib”字符串       System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)\ r \ n System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification)\r\n bei System.Threading.Tasks.Task 1.get_Result()\ r \ n DDS.xxx.Client.Engine C. \ Projekte \ Client \ DDS.xxx.Client \ DDS.xxx.Client.Engine \ RestApiConnector.cs:Zeile 69中的.RestApiConnector.GetOffeneForClientImport()。字符串
  •   
  • TargetSite {无效ThrowIfExceptional(Boolean)} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}
  •   
  • Statische成员
  •   
  • Nichtöffentliche成员
  •   

有人想要的是我的错误吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我明白了! 我必须为每个请求初始化HttpClient(_client)。