2012-03-23 193 views
0

我有一个.NET 7.5服务器上托管的.NET,WCF Web服务(在PowerBuilder 12.5.1中创建),它具有一个方法调用需要一个整数,然后使调用MS SQL Server 2008 R2数据库。使用Microsoft网络监视器3.4我可以看到我的客户端向IIS服务器发出HTTP请求,有时它会发送HTTP 100响应,有时不会(这从来不是问题,在这种情况下我不在乎),那么客户端向服务器发出SOAP请求,该服务器具有服务调用的详细信息。但是,IIS服务器只是发送一个HTTP 200响应,而不是像预期的那样进行SQL调用。没有迹象表明该服务甚至试图连接到SQL数据库。服务托管的IIS站点和应用程序都使用PBDotnet4AppPool,该PBDotnet4AppPool使用集成托管管道模式和NetworkService标识。应用程序有一个连接字符串,可用于连接到SQL数据库,并具有对数据库上所有表具有读取访问权限的用户标识。IIS 7.5托管的Web服务SOAP调用返回http响应

我该如何解决这个问题,以便服务进行SQL调用并返回正确的响应?任何帮助是极大的赞赏。 PS:我是新手,请耐心等待,如果有其他一些我应该包含的信息,请告诉我。

+0

您为什么期望能够查看到SQL Server的流量?它不会是HTTP。 – 2012-03-23 22:22:25

+0

它应该是在TDS协议中,并且应该在服务将响应发送回客户端之前发生。服务响应也应该是SOAP,而不是HTTP。 – djmsmith 2012-03-27 17:01:44

+0

是基于HTTP的TDS吗? SOAP,OTOH通过HTTP运行。 – 2012-03-27 17:22:04

回答

1

事实证明,整个事情是Powerbuilder的.dll文件问题。当powerbuilder Web服务找不到所需的.dll文件时,它往往只是悄无声息地崩溃,而不会告诉你为什么。为了解决这个问题,我从开发计算机(运行Windows 7)将“C:\ Program Files(x86)\ Sybase \ Shared \ PowerBuilder”的内容复制到IIS服务器上的同一文件夹中。在我这样做后,IIS服务器上的控制台“自托管”应用程序服务和IIS托管服务都正常工作。

+0

你在IIS服务器上的哪些位置复制这些文件? – 2012-03-30 18:38:58

+0

它在服务器和我的电脑上都是相同的文件路径。我编辑了包含这个的答案 – djmsmith 2012-03-30 19:07:24