none
紧急求助,WebService部署到服务器后调用访问数据库的程序得不到数据。 RRS feed

  • 问题

  • 我在开发一套摩托罗拉MC3190移动终端的物资管理程序,是WinCE的,连接Oracle数据库需要用WebService。

    我的WebService开发完以后跑到本机(Win7 + IIS7.5 + Framework 4.0)完全没有问题。

    但我发布到一台Server 2008服务器(IIS7.5 + Framework 4.0)后调用访问数据库的方法就返回不了数据。

    后来我又试了一台Server 2003服务器(IIS6.0 + Framework 2.0)也不行,同样的问题。

    然后我试了一台XP笔记本(IIS5.1 + Framework 2.0)就可以。

    但同样的一台XP电脑,还是不行。

    然后我又找了一台新机器,装了跟我的开发机一模一样的系统,还是不行。

    这是啥原因呢。

    所谓行不行的意思就是:

    调用方法后返回的XML不一样。

    正常情况下返回如下信息。

    <DataSet xmlns="http://tempuri.org/">
    <xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element name="Table">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="_x0031__x002B_1" type="xs:decimal" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <NewDataSet xmlns="">
    <Table diffgr:id="Table1" msdata:rowOrder="0">
    <_x0031__x002B_1>2</_x0031__x002B_1>
    </Table>
    </NewDataSet>
    </diffgr:diffgram>
    </DataSet>

    但不行的时候只返回如下信息:

      <?xml version="1.0" encoding="utf-8" ?> 
      <DataSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:nil="true" xmlns="http://tempuri.org/" /> 

    访问不连接数据库的方法是没问题的,比如自带HelloWorld。
    网络连接也没问题。

    求解决!小弟拜谢!


    • 已编辑 TE188888 2012年9月7日 2:35
    • 已移动 Decker Dong - MSFT 2012年9月10日 8:27 服务器IIS问题 (发件人:XML 与 Web Services 讨论区)
    2012年9月7日 2:34

答案

  • 你好,

    IIS7.5支持在IIS管理器中配置数据库连接字符串,你在程序中已经配置了就不用重新配置了。

    从返回的xml结果看,WebService的方法调用返回了空值Null。建议你检查一下代码执行路径,查看一下可能返回 Null的原因。另外连接数据库的问题,你可以写一些方法返回当前的连接字符串,当前用到的查询语句,然后直接到数据库上执行查看结果。


    Leo Tang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年9月11日 3:31
    版主

全部回复

  • 1)请确认是否IIS数据库部分配置正常,可以正常连接获取数据。

    2)直接F5调试程序(到WebService中),有什么异常抛出(注意,去掉try……catch……)。

    2012年9月9日 2:14
  • 你好,请问IIS数据库部分配置是什么意思?IIS中有单独设置数据库的地方吗?

    我开发机调用此WebService没问题,是服务器中不行。没法调试。

    2012年9月10日 2:40
  • 你好,

    IIS7.5支持在IIS管理器中配置数据库连接字符串,你在程序中已经配置了就不用重新配置了。

    从返回的xml结果看,WebService的方法调用返回了空值Null。建议你检查一下代码执行路径,查看一下可能返回 Null的原因。另外连接数据库的问题,你可以写一些方法返回当前的连接字符串,当前用到的查询语句,然后直接到数据库上执行查看结果。


    Leo Tang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年9月11日 3:31
    版主