我正在将 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 服务方法中有代码时就设置了一些数据库连接,但现在它基本上什么都不做,我不认为这应该是一个问题。