我正在将C# asp.net asmx web服务从ii6 (32位)传输到Windows2008和iis7 (64位)。在此之前,我得到了大约160毫秒的web方法执行时间。在iis7上,我现在得到了大约320毫秒,即使在将web方法减少到几乎没有要执行的代码之后。我意识到在第一次调用时有一个编译时间。这个时间是在大约20次呼叫之后,时间似乎已经稳定下来了。
我希望将运行web方法的时间从320ms减少到200ms以下。这是为了帮助处理需要处理多个呼叫的情况。另一个问题是,当我在1秒内增加20个呼叫时,有时其中一个呼叫大约需要3秒。这也是不可取的。
我尝试过在发布模式下编译,并从web.config中删除了一个调试编译。.asmx文件只是引用要在dll二进制文件中加载的类。
有所不同的是,iis7被配置为显示更详细的错误消息,以帮助进行设置。然而,由于这只是在发生错误时才发生,我看不出它怎么会减慢常规调用的速度。
我已经尝试了集成流水线模式和经典流水线模式,仍然得到类似的时间。我还尝试将默认编译语言设置为C#。我已尝试检查ping时间,以确认不是网络。当web服务方法中有代码时,IIS已经设置了一些数据库连接,但现在它基本上什么也不做,我认为这不应该是一个问题。
发布于 2012-07-19 05:37:24
仅供参考-问题不在asmx、iis7、iis6、调试模式或管道模式。新的IIS7 64位服务器从内部ip地址开始,然后逐渐发展为公共ip地址。由于网络路由的不同,ip地址也会有所不同。IIS6测试用例基于公网ip。一旦我为IIS7服务器使用了公共ip,时间是相当相似的。
https://stackoverflow.com/questions/10488712
复制相似问题