Web服务 - Web客户端函数不会写入db

时间:2011-05-03 16:02:42

标签: wcf web-services

我无法使用网络服务将任何记录写入我的数据库。服务设置正常,可以通过uri访问它,也可以使用我创建的简单页面通过服务查询我的数据库。

当涉及到写入数据库时​​,我没有收到任何错误,并且我的WebClient实例填充了要写入数据库的变量,这样可以保存所有变量,但是当实际写入数据库时db(见下面的代码)似乎没有任何事情发生,除了返回添加到数据库的最后一个现有成员的成员ID。

        'assign all abMem fields to values within form to write to database
        newMem.Title = ddTitle.SelectedValue
        newMem.Initials = txtInitials.Text
        newMem.Surname = txtSurname.Text
        newMem.Address1 = txtAdd1.Text
        newMem.Address2 = txtAdd2.Text
        newMem.Address3 = txtAdd3.Text
        'etc etc .... additional fields have been removed

        Try
            cc.Open()
            cc.CreateMember(newMem)
            returnMem = cc.GetMember(newMem)
            MesgBox(returnMem.MemberID & " - Member Created")
            cc.Close()
        Catch cex As CommunicationException
            MesgBox("CommEX - " & cex.Message)
            cc.Abort()
        Catch tex As TimeoutException
            MesgBox("TimeEX - " & tex.Message)
            cc.Abort()
        Finally
            MesgBox("Closed the Client")
        End Try

当我运行上述操作时,我注意到日志文件中的服务(在我的服务器上的system32文件夹中)每次发出2个请求 - 大概就是我想要添加记录的地方和其他我认为是对这个成员的ID的请求(没有创建,因此我相信它只是返回表中最后一个成功的条目)。

我知道实际的Web服务没有问题,因为有另一个用户成功地通过该服务添加到数据库(不幸的是我无法简单地复制他们的设置,因为他们通过php页面)所以我知道我的代码中某处存在问题。

cc.CreateMember(newMem)是否有正确的语法将成员的详细信息传递给webservice中的函数是我想知道的?

1 个答案:

答案 0 :(得分:0)

我重新编写了代码(似乎与上面相同)并重新发布了Web服务。现在似乎工作正常所以我一定在某个地方犯了一些愚蠢的错误!