C#开发的WCF,挂载IIS,通过SAPNCO访问SAP,经常会出现假死现象

永恒 0 信誉分
2024-10-31T06:51:41.7933333+00:00

1.开发环境:使用的是C#开发的WCF服务,通过sapcno来访问SAP的RFC接口,最终:在 IIS 中裝載 WCF,在测试过程中,一切都正常,切换到正式服务器后,经常会出现IIS假死的现象

2.通过测试发现几个现象,访问SAP时未得到及时的反馈(部分数据可能1-3分钟才会有答复),这时候如果有多用户同时访问这个接口,IIS就会直接挂掉,所有的接口均无法访问

3.WCF里面也设置了相关的TimeOut超时(测试未产生作用),在WCF里面也使用过Task超时来解决,但是只要使用了Task,调用SAP就会出现DEALLOCATED_NORMAL的错误

4.现在想咨询的问题是,如果有办法设置超时,如果有接口响应时间超过了30秒,直接断开连接返回错误;IIS是否可以设置,当IIS假死后是否可以自动重启

                                                                                                                         谢谢各位。
C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
192 个问题
0 个注释 无注释
{count} 票

2 个答案

排序依据: 非常有帮助
  1. Jiayao Wu-MSFT 176 信誉分 Microsoft 供应商
    2024-11-01T08:48:12.66+00:00

    你好 @永恒,欢迎来到Micrsoft 问答。

    解决方案:在IIS 7.5版本 后新增了一个属性叫 Startmode。你可以将 Startmode 设置为AlwaysRunning。它有2个值供选择,默认值为 OnDemand;另一个值为 AlwaysRunning。

    具体的步骤如下:

    1. 在IIS管理器中,单击“连接”窗格中的“计算机名称”。
    2. 如果视图未激活,则切换到功能视图。
    3. 在Features视图的Management部分双击Configuration Editor。
    4. 单击Section字段的向下箭头,展开system。Applicationhost,然后单击应用程序池。
    5. 单击(Collection),然后单击显示计数字段旁边的省略号(…)。
    6. 在Collection Editor中,选择要为其配置startMode属性的应用程序池。
    7. 在底部的属性窗口中,将startMode属性的值设置为AlwaysRunning。

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

  2. 永恒 0 信誉分
    2024-11-04T02:33:35.5633333+00:00

    非常感谢@Jiayao Wu-MSFT IIS配置1

    IIS配置2

    IIS配置3

    上图是我IIS现有的相关配置,访问SAP-RFC接口时,只要返回时间较长,IIS就会出现无法连接的现象


你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。