Ciao a tutti stò facendo una piccola applicazione che memorizza tramite un ws l'ip e l'id di una macchina remota

perciò istanzio come ws la webreference e dalla win appz passo il parametro NomeServer

poi a riceverlo trovo una funzione del ws che è questa...
codice:
<WebMethod()> _
    Public Function MemorizzaServer(ByVal NameServer As String) As String
        Try

            Dim ip As String = System.Web.HttpContext.Current.Request.ServerVariables("REMOTE_ADDR")
        Dim ds As DataSet
            ds.ReadXml(Server.MapPath("../Public/xml/No-IpClient.xml"))
            ds.ReadXmlSchema(Server.MapPath("../Public/xml/No-IpClient.xsd"))
        Dim Riga As DataRow = ds.Tables(0).NewRow
            For Each Riga In ds.Tables(0).Rows
                If Riga("NomeServer") = NameServer Then
                    Riga.Delete()
                    ds.WriteXml(Server.MapPath("../Public/xml/No-IpClient.xml"))
                End If
            Next
            Riga("NomeServer") = NameServer
        Riga("Ip") = ip
            ds.WriteXml(Server.MapPath("../Public/xml/No-IpClient.xml"))
            Return "L'ip del server è stato aggiornato."

            ds = Nothing
        Catch ex As Exception
            Return "Si è verificato l'errore: " & ex.Message & vbNewLine 
        End Try
    End Function
ma come output ricevo sempre "Riferimento a un oggetto non impostato su un'istanza di oggetto"

se faccio il debug mettendo dei breakpoint vedo che va nel catch dopo aver passato il primo ds.ReadXml ..ma la path è giusta! e ho fatto così anche in altre mille applicazioni senza avere problemi!!..non capisco cosa abbia !!
forse mi sono rincojonito e non vedo l'errore?? :master: :master: