WebService mit Parameter aufrufen scheitert

30. Oktober 2008 17:05

Hallo,

also ich habe folgendes Problem.
Ich habe in NAV 2009 einen Web Service erstellt und ihn auch registriert ect.Hier folgt der Code:
Code:

Documentation()

OnRun()
filename :='C:\Neu.txt';
CreateFile(filename);

CreateFile(VAR FileName : Text[250]) Status : Boolean
Status := COPY('C:\\test.txt', FileName);
if(NOT GUIALLOWED) THEN
  message(Format(Status));



Ist also ganz einfach. Wenn ich die CU über Run aufrufe kopiert er mir die Datei von Test nach Neu. Die Datei ist auch auf de Festplatte vorhanden!
Nun habe ich das ganze als Web Service veröffentliht und der Code dazu sie wie folgt aus:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace WebService
{
    using localhost;

    class Program
    {
        static void Main(string[] args)
        {
            CopyFile File = new CopyFile();
            File.UseDefaultCredentials = true;
            //File.Url = "http://localhost:7047/DynamicsNAV/WS/CRONUS_AG/Codeunit/CopyFile";
            String filename = "C:\\new.txt";
            if (File.CreateFile(filename))
            {
                Console.WriteLine("Die Datei "+filename+" wurde umkopiert");
            }
            else
            {
                Console.WriteLine("Die Datei " + filename + " konnte nicht umkopiert werden");
            }

            Console.ReadLine();
        }
    }
}


Ich hab das schon sehr viel im Code ausprobiert. Viele Möglihkeiten versucht aber nichts hat gewirkt. Also das Problem ist nun, dass die Datei über den Web Service einfach nicht erstellt wird. Woran kann das liegen?

Re: WebService mit Parameter aufrufen scheitert

30. Oktober 2008 17:40

Hallo,

ich vermisse ein using mit dem Webservice in deinem Quellcode. Ist irgendetwas im C#- Quellcode deines Testprogramms mit einem roten Linie unterstrichen?
Wenn ja beseitige die Ursachen dieser Fehler.

Nenne deine Funktion in der Codeunit mal anders. Es könnte sein, das es diese Funktion in der Standard .net gibt, und du deshalb beim compilieren keinen Fehler bekommst.
Solltest du nicht mit der VPC-Demo arbeiten, sondern mit einer echten Installation, denke bitte daran, das der Webservice dort ausgeführt wird wo der Dienst für den Webservice läuft, bzw. auf dem Rechner mit dem Service-Tier (sprich auf dessen Laufwerk c:, welcher Rechner genau, konnte ich mangels getrennter Installation nicht testen).
Außerdem kann es bei einer 2009-Installation mehrere Service-Tiers auf mehrern Rechnern geben, deshalb sollte man nie auf Laufwerk C: kopieren :!:

Gruß, Fiddi