C# 可以从WebAPI服务调用SOAP服务吗?
我想知道,通常可以从WebAPI服务调用SOAP服务吗 我有一个基于WebAPI(EntryPoints项目)的项目,还有一个带有SOAP服务的遗留框架。 我想上传一个文件到遗留框架存储库(即FW的所有服务都已经过测试并成功用于其他项目),但要通过一个入口点项目,该项目连接到我的前端(JS) 工作流类似于以下过程:C# 可以从WebAPI服务调用SOAP服务吗?,c#,asp.net-web-api,soap,C#,Asp.net Web Api,Soap,我想知道,通常可以从WebAPI服务调用SOAP服务吗 我有一个基于WebAPI(EntryPoints项目)的项目,还有一个带有SOAP服务的遗留框架。 我想上传一个文件到遗留框架存储库(即FW的所有服务都已经过测试并成功用于其他项目),但要通过一个入口点项目,该项目连接到我的前端(JS) 工作流类似于以下过程: 必须在EntryPoint项目的目录中加载文件 如果文件已加载(EntryPoint的WebAPI服务仍处于 必须启动SOAP服务,并且此文件正在加载到其存储库中 但是如果我试图从E
试试看
{
int fileId=wait Task.Factory.StartNew(()=>
{
//将文件上载到EntryPoint项目的临时目录
Request.Content.ReadAsMultipartAsync(提供者);
字符串fileName=provider.FileData[0].LocalFileName;
返回文件名;
}
,取消令牌。无,
TaskCreationOptions.LongRunning,
TaskScheduler.FromCurrentSynchronizationContext())
.ContinueWith(文件任务=>
{
字符串filePath=fileTask.Result;
//在下一行抛出异常
int ident=clientOfLegacyFramework.UploadFileToRepositoryAndSaveItInDB(文件路径);
...
返回标识;
}
,CancellationToken。无
,TaskContinuationOptions.LongRunning
|TaskContinuationOptions.AttachedToParent
|TaskContinuationOptions.OnlyOnRanToCompletion
,TaskScheduler.Default);
返回请求.CreateResponse(HttpStatusCode.OK,fileId);
}
捕获(例外e)
{
返回请求.CreateErrorResponse(HttpStatusCode.InternalServerError,e);
}
try
{
int fileId = await Task.Factory.StartNew<string>(() =>
{
// Upload a file to temporary directory of EntryPoint Project
Request.Content.ReadAsMultipartAsync(provider);
string fileName = provider.FileData[0].LocalFileName;
return fileName;
}
, CancellationToken.None,
TaskCreationOptions.LongRunning,
TaskScheduler.FromCurrentSynchronizationContext())
.ContinueWith<int>(fileTask =>
{
string filePath = fileTask.Result;
// Exception is thrown on the next line
int ident = clientOfLegacyFramework.UploadFileToRepositoryAndSaveItInDB(filePath);
...
return ident;
}
, CancellationToken.None
, TaskContinuationOptions.LongRunning
| TaskContinuationOptions.AttachedToParent
| TaskContinuationOptions.OnlyOnRanToCompletion
, TaskScheduler.Default);
return Request.CreateResponse(HttpStatusCode.OK, fileId);
}
catch (Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}