提问人:Abhijith Nayak 提问时间:10/31/2023 更新时间:10/31/2023 访问量:35
WCF 异步操作超时
Timeout in WCF asynchronous operation
问:
在我的应用程序中,用于生成文件并将其下载到服务器位置并保存文件信息,我们使用的是 WCF 和 Sql Server,具有存储库模式的实体框架。
当我们输入要使用 WCF 生成的文件的计数(在 UI 中)时,会发生对 WCF 的调用,它将在 1-10000 之间变化,如果我输入计数< 7000,则没有错误,但如果计数> 7000,我在 WCF 中出现错误 -
异常:System.Data.Entity.Infrastructure.DbUpdateException:更新条目时出错。有关详细信息,请参阅内部异常。---> System.Data.Entity.Core.UpdateException:更新条目时出错。有关详细信息,请参阅内部异常。---> System.InvalidOperationException:与当前连接关联的事务已完成,但尚未释放。
必须先释放事务,然后才能使用连接来执行 SQL 语句。
我假设此错误是由于数据库超时造成的。
WCF 方法用于生成我的 C# 代码的文件 -
[ServiceContract]
public interface IRFService
{
[OperationContract(IsOneWay = true)]
void RequestForBulkPrint(Guid orderId);
WCF 配置 -
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
<serviceTimeouts transactionTimeout="00:20:00"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
我在WCF中引用了业务层dll以重用其他逻辑。
所以应用程序的结构如下——
Web API -> 服务集成 -> 业务层 -> WCF(用于 生成文件) -> 业务层(用于生成文件) -> 存储库层(使用实体框架)-> Sql Server 数据库。
如果计数> 7000,我在业务层(从 WCF 调用)中出现错误。由于根据我们的业务逻辑发生了多个更新调用,因此错误行不一致。
如果此错误是由于 WCF 超时造成的,请告诉我,并请指导如何解决。
答: 暂无答案
评论