我使用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成员
有人想要的是我的错误吗?
谢谢。
答案 0 :(得分:0)
我明白了! 我必须为每个请求初始化HttpClient(_client)。