- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 ASP.NET Core 中调用 WCF 服务并且一切正常,但是每当执行 using
结束时,我都会收到错误消息:
This OperationContextScope is being disposed out of order
我相信我使用了错误的模式来使用 async/await 调用 WCF 服务,但我不确定我做错了什么。
下面是我用来调用服务的代码。
[HttpPost]
public async Task<IActionResult> Runcase(IFormCollection formCollection)
{
if (ModelState.IsValid)
{
var runnumber = formCollection["Run number"];
await CallServiceasync();
return RedirectToAction("", "");
}
else
{
return View(formCollection);
}
}
public async Task CallServiceasync()
{
var product = p1.Value;
var a = product.first;
foreach (int Age in a.age)
{
foreach (int Gender in a.sex)
{
foreach (int Healthclass in a.uclass)
{
RequestData requestData = new RequestData()
{
ProductID = 534,
STATE = "CO",
AGE1 = Age,
SEX1 = Gender,
UND_CLASS1 = Healthclass,
};
RecieveResponseasync(requestData);
}
}
}
}
public async Task RecieveResponseasync(InputValues inputValues)
{
string reqedata = "";
string apikey = "001010iZno7001010L";
QuoteEngineService.MarketingSoftwareClient Service = new QuoteEngineService.MarketingSoftwareClient();
await Service.OpenAsync();
try
{
using (OperationContextScope scope = new OperationContextScope(Service.InnerChannel))
{
HttpRequestMessageProperty httpRequestMessage = new HttpRequestMessageProperty();
httpRequestMessage.Headers.Add("apikey", apikey);
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestMessage;
reqedata = inputValues.XmlSerializetoString();
var result = await Service.ProcessRequestAsync(reqedata, "4fa2-ae27");
var outputvalues = new OutputvaluesViewModel();
outputvalues = result.DeserializeToObject();
List<OutputValue> outputs = new List<OutputValue>();
if (outputvalues.InitialPremium != null)
outputs.Add(new OutputValue { Name = "InitialPremium", Result = outputvalues.InitialPremium});
if (outputvalues.TargetPremium != null)
outputs.Add(new OutputValue { Name = "TargetPremium", Result = outputvalues.TargetPremium });
foreach (var output in outputs)
{
await _context.outputValues.AddAsync(output);
await _context.SaveChangesAsync();
}
await Task.Delay(500);
}
}// **At this point I am getting error**
catch (Exception ex)
{
throw;
}
finally
{
if (Service.State == System.ServiceModel.CommunicationState.Opened)
{
await Service.CloseAsync();
}
}
}
最佳答案
来自docs :
Warning
Do not use the asynchronous "await" pattern within a OperationContextScope block. When the continuation occurs, it may run on a different thread and OperationContextScope is thread specific. If you need to call "await" for an async call, use it outside of the OperationContextScope block.
关于c# - 此 OperationContextScope 被乱序处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62455176/
我在 ASP.NET Core 中调用 WCF 服务并且一切正常,但是每当执行 using 结束时,我都会收到错误消息: This OperationContextScope is being dis
使用 service reference我有这个: using (OperationContextScope scope = new OperationContextScope(client.Inne
我目前正在开发一个 WCF 服务,该服务可以连接到另一个服务以在其一些操作中提交信息。第二个服务的代理是通过强类型 ProxyFactory 生成的类(class)。我没有遇到任何问题,但听说我应该在
我知道这是一个被多次问到的问题,但我找不到可以查看的“陷阱”列表。 我正在编写一个将使用 SAP Web 服务的 WCF 客户端,在我的 web.config 中使用 customBinding 并将
我正在从 WinRT 应用调用 WCF 服务。该服务要求为身份验证设置一些 header 。问题是,如果我同时对该服务进行多次调用,我会得到以下异常: 此 OperationContextScope
我是一名优秀的程序员,十分优秀!