我在BizTalk中有一个编排,它通过SAP的Web服务收集数据。
我的流程如下。
我们在接收端口上有一个SOAP服务,当我们从SOAP获取请求时,我们将其转换为SAP RFC文件格式并将其发送到SAP。当我们尝试从SAP获得响应时,响应数据很大时会出现错误。如果响应消息大小太大,我们的服务会收到超时错误。否则,如果邮件大小不大,则没有问题。
我尝试在BizTalk管理控制台上增加超时持续时间但仍然失败。无论我做什么,超时持续时间总是在1分钟内。
将下面的XML配置标记添加到machine.config文件后,我得到一个错误,如下图所示。
C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \配置
<configuration>
<system.transactions>
<machineSettings maxTimeout="00:20:00" />
</system.transactions>
</configuration>
下图是SAP Send Port
SAP发送端口详细信息
在详细信息中,您可以看到我的超时时间约为10小时,但在SOAP UI中,我在1分钟后收到超时错误。
下图是接收端口
您还可以找到biztalk事件查看器错误,如下所示。
A response message sent to adapter "SOAP" on receive port "WebPort_SAP/MusteriFaturaT/ABC_SAP_Fatura_T_FaturaOrch_InvoiceReceivePort" with URI "/SAP/MusteriFaturaT/ABC_SAP_Fatura_T_FaturaOrch_InvoiceReceivePort.asmx" is suspended.
Error details: The original request has timed out. The response arrived after the timeout interval and it cannot be delivered to the client.
并且SOAPUI响应屏幕为空白,如下所示
答案 0 :(得分:2)
在WCF自定义发送端口上,更改超时(关闭,打开,发送,接收)的值以增加超时。 See the link for more details
您还可以使用SOAPUI工具在BizTalk外部测试您的Web服务,以查看响应时间和响应大小。
答案 1 :(得分:1)
问题是关于SOAP UI超时问题。当我更改SOAP的超时属性时,我们的超时持续时间增加到110秒。 110秒是默认的肥皂超时持续时间。要解决此问题,您必须在web.config文件中添加以下配置选项。
<system.web>
<httpRuntime executionTimeout="43200" />
</system.web>
此外,您还必须在客户端app.config文件中添加以下配置。
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="IBRAHIM_SAP_Fatura_T_FaturaOrch_InvoiceReceivePortSoap" maxReceivedMessageSize="2147483647" receiveTimeout="03:00:00"
sendTimeout="02:00:00" transferMode="Streamed"/>
</basicHttpBinding>
</bindings>
</system.serviceModel>
答案 2 :(得分:0)
<强>更新强>
现在我们有错误,它表明它是超时的客户端,而不是BizTalk,在这种情况下是SoapUI。根据这个问题的答案SoapUI: ConnectException: Connection timed out:
默认套接字超时设置为60000毫秒。你可以改变它:
档案 - &gt;偏好 - &gt; HTTP设置 - &gt;套接字超时
当您与其他客户连接时,您还必须检查/设置超时。
原始帖子:
如果您使用的是BizTalk 10或更高版本,请检查主机上的响应超时设置为大于一分钟的值。
我遇到了Timeout的问题,这是我改变的一个设置(在这种情况下是最大值)。
您可以为大型事务设置特定主机,其中响应超时(以分钟为单位)更改,只有那些需要它的端口才能使用它。
然而,即使我将其更改为最大值后,我在15分钟后遇到超时。
为此,我必须禁用“使用事务”,只有在遇到问题并且正在检索数据而不是插入/更改数据时才执行此操作。
以上图片来自我的博客文章BizTalk Server Negative Acknowledgement issues in SAP and WCF。
至于在配置中设置system.transaction设置,这样做很危险,因为它会影响一切,而不仅仅是那个端口。
答案 3 :(得分:-1)
您必须在machine.config文件中增加超时
C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \配置
<configuration>
<system.transactions>
<machineSettings maxTimeout="00:20:00" />
</system.transactions>
</configuration>
您还必须将属性allowExeDefinition设置为“MachineOnly”中的“MachineToApplication”