0

我正在将 C# asp.net asmx Web 服务从 ii6(32 位)转移到 Windows 2008 和 iis7(64 位)。我之前得到了大约 160 毫秒的近似 Web 方法执行时间。在 iis7 上,我现在得到了大约 320 毫秒,即使在将 web 方法减少到几乎没有要执行的代码之后也是如此。我意识到第一次调用有一个编译时间。这个时间是在大约 20 个电话之后,时间似乎已经稳定下来。

我想将运行 Web 方法的时间从 320 毫秒减少到 200 毫秒以下。这是为了帮助处理需要处理多个呼叫的情况。另一个问题是,当我在 1 秒内增加 20 个呼叫时,有时其中一个呼叫将需要大约 3 秒。这也是不可取的。

我尝试在发布模式下编译并从 web.config 中删除了调试编译。.asmx 文件只是引用要加载到 dll 二进制文件中的类。

不同的是,iis7 被配置为显示更详细的错误消息以帮助设置。但是,由于这只是发生错误时,我看不出它会如何减慢常规调用的速度。

我已经尝试过集成管道模式和经典管道模式,但仍然得到相似的时间。我还尝试将默认编译语言设置为 C#。我试过检查 ping 时间以确认它不是网络。IIS 从 Web 服务方法中有代码时就设置了一些数据库连接,但现在它基本上什么都不做,我不认为这应该是一个问题。

4

1 回答 1

0

仅供参考 - 问题不是 asmx、iis7、iis6、调试模式或管道模式。新的 IIS7 64 位服务器从内部 IP 地址开始,然后升级为公共 IP 地址。由于网络路由的差异,IP地址有所不同。IIS6 测试用例基于公共 ip。一旦我将公共 IP 用于 IIS7 服务器,时间就相当相似了。

于 2012-07-18T21:37:23.700 回答