Jag driver/utvecklar/förvaltar ett stödsystem. Om du vill köra på variant tre så blir nog det enklaste att du skriver logiken i vb 6 och sedan använder den ifrån asp.net. Den kod som behövs på asp.net-sidan blir då väldigt liten. När det gäller andra hållet; att ifrån vb 6 anropa en webservice så behöver du över huvudtaget inte blanda in .net om du inte vill. Hittade en sida, dock för vs.net, om att anropa com-komponenter: http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=403 Läste igenom kommentarerna till den där sidan; ladda hem soap toolkit ifrån ms; det ska tydligen finnas något verktyg däri som skapar en webservice utifrån ett comobjekt. (SOAP toolkit = gratis) OK. 1) Hittade en artikel om hur det där med SOAP Toolkit fungerar: http://www.c-sharpcorner.com/Code/2003/June/WebServiceUsingSOAPToolkit.asp Håller på med dll:n. Den dll som jag senare skall göra till en webservice. Hm... Du lägger till en referens till den under "project/references" i vb. Eller registrerar den och använder bara CreateObject Om jag lägger till den under referenser, kan jag då anropa functionen på samma sätt som om functionen låg i exe-filen? 1) Om du lägger till den i references så anropar du den sedan som: Om dll filen heter testdll.dll nja... Tackar. Problem direkt. Oops, nu har jag tänkt för mycket på andra språk. I vb måste man ha Set innan man tilldelar ett objekt. Nedanstående sub fungerar i WinXP + Access2k, men inte i Win2k + Access2k. I winxp så finns det redan installerat komponenter för att kunna ansluta till soap-saker, men win2k har det inte. Det är helt enkelt något som måste laddas ner speciellt för win2k Vet du vad som saknas, jag har just nu bara sp3, dvs sp4 inte pålagt. Har du någon "C:\Program\Delade filer\MSSoap\Binaries\mssoap1.dll"? Nästan. Kommit lite längre.Hjälp, måste komma igång med WebServices
Systemet har kopplingar till andra företags stödsystem.
Kopplingarna består idag av att de andra systemen antingen skickar xml-kodade mail eller direkt skapar xml-poster i min sqlserver (via brandväggsöppningar).
Nu vill jag utöka integrationsmöjligheterna med webservices.
Jag vill att kundernas stödsystem mha ws ska kunna leverera xml-data till min sql-server.
Jag vill även vid statusändringar i vårt system via ws kunna leverera data till kundens ws.
Jag har en w2k med iis på ett dmz-nät.
Jag har en öppning in till intranet i fw på sql-serverporten.
På intranet står även en applikation skriven i access2k (endast som applikation, inte som databas)
Denna jobbar kontinuerlligt mot sql-servern. (läser xml-data-posterna och skapar uppdrag (beställningar) i vårt stödsystem.
Applikationen känner även av statusändringar i vårt system och skapar xml-poster som antingen läses av kundens system i vår sql-server, eller skickas som xml-kodade mail till kundens system.
1: En lösning vore om min iis kunde leverera inkommen xml till min sql-server.
Och om min accessapplikation levererade xml-poster till sql-server, skulle dessa uppfattas av iis:en och skickas till kundens ws.
2: En annan lösning att kunna nyttja iis:en för inkommande beställningar fr kundsystem, men att från accessapplikationen anropa kundes ws vid statusuppdateringar.
3: En tredje lösning vore att bygga en egen ws (vb.net?) som körs som tjänst på min dmz-w2k-maskin, och att denna tjänst både hanterade inkommande och utgående data-transport.
Om jag nyttjar iis:n, vad behöver jag extra (licenser, applikationer mm)?
Om jag går via egen ".net-ws", vad finns för kod, länkar mm i ämnet?
Om man kan göra detta via egen .net-ws, kan man även göra det i VB6?
(Jag har/kan VB6, men inte .net).
Detta kan bli en lång tråd i detta forum, men jag är tacksam för alla kontruktiva inlägg.
/ MikaelSv: Hjälp, måste komma igång med WebServices
På följande sida kan du hitta hur du ska göra för att anropa en webservice ifrån vb 6:
http://www.kamalpatel.net/ConvertCSharp2VB.aspx Ovanför textrutan finns följande: "[ Implementation - VB6 ]". Däri har du enkel kod för det.
Nackdelen med att anropa ifrån vb 6 utan .net är att du kan få problem ifall du någon gång skulle vilja ha lite säkerhet i det hela (utöver ssl dvs.) Fast då kan man wrappa en .net komponent som anropar webservicen som en com-komponent istället.Sv: Hjälp, måste komma igång med WebServices
Sv: Hjälp, måste komma igång med WebServices
Sv: Hjälp, måste komma igång med WebServices
Jag har haft (har fortfarande viss) semester, därav lite sen med min återkoppling.
Kan jag få förslag/hjälp på följande.
1: Jag kan inget (nästan inget) om com-objekt.
Hur skulle ett sådant kunna se ut i VB där "inkommen" soap/xml lagras i min sql-server?
2: Hur skulle asp .net-sidan se ut som anropar webservicen?
Jag ska ladda hem soap toolkit och läsa vidare.
/ MikaelSv: Hjälp, måste komma igång med WebServices
Du gör en dll-fil i vb 6. Alla sådana (inkl. ocx) blir COM-objekt i vb 6. Vad SOAP toolkit för är tydligen att göra en .NET wrapper runt det automagiskt som man sedan kan lägga in någonstanns på servern + att registrera komponenten på servern. I din kod vet jag inte exakt hur det ska gå till, men du lär behöva en "class module" med en eller flera publika metoder som kan anropas.
2)
Se ut å se ut; om du kör verktyget "wsdl.exe" som finns i .NET SDK mot http(s)://servern/sidan.asmx?WSDL så genereras en klass i antingen VB.net eller C# som du kan hantera som en vanlig klass. Fast internt i den klassen skickar den allt till servern.Sv: Hjälp, måste komma igång med WebServices
Sv: Hjälp, måste komma igång med WebServices
Hur ser koden i VB ut för att anropa en funktion i en dll?
Exvis dll=testdll.dll, function=testfunc(param1,param2)as variant.
Hur ser samma kod ut i asp?
(testdll ligger så samma server som asp-sidan)
Behöver detta för att testa funktionen.
/ MikaelSv: Hjälp, måste komma igång med WebServices
Jag tänkte först skapa den som en vanlig VB-dll, och sedan göra den till en ws mha soap-toolkit.
Det vore då bra att kunna testa dll:en mha en vb-exefil och mha en asp-sida.
/ MikaelSv: Hjälp, måste komma igång med WebServices
Sv: Hjälp, måste komma igång med WebServices
Jag bör väl ange dll-namnet någonstans.
Hur gör man annars?
Så mycket kan jag inte i VB.
Har du exempel på hur det skulle se ut i asp-filen (createobject)?
/ MikaelSv: Hjälp, måste komma igång med WebServices
Dim x as DLL_PROJEKT_NAMN.CLASS_MODULE_NAMN
x = new DLL_PROJEKT_NAMN.CLASS_MODULE_NAMN
x.MinFunction("test", 123)
2) I asp: registrera din komponent i COM
Sedan:
Dim x
x = Server.CreateObject("DLL_PROJEKT_NAMN.CLASS_MODULE_NAMN")
x.MinFunction("test", 123)Sv: Hjälp, måste komma igång med WebServices
och classfilen heter testclass.cls
och functionen heter testfunction
och classen heter i projektet class1
Blir det då:
Dim x as testdll.class1
x = new testdll.class1
x.testunction("test", 123)
Namnet jag gett vbp-projektet under project/properties/project name används väl inte, eller?
/ MikaelSv: Hjälp, måste komma igång med WebServices
dim x as DITT_PROJEKTNAMN.class1
ska det vara. Det är alltså projectname som används.Sv: Hjälp, måste komma igång med WebServices
Nu ska jag börja ta tag i detta lite mer.
Om jag får problem (vilket jag säkert får), återkommer jag.
/ MikaelSv: Hjälp, måste komma igång med WebServices
Jag har gjort en dll.
Lagt till den i references i ett testprojekt (vbp).
I dll:n finns en function som heter Test.
Public Function Test() As Variant
Test = "Detta är en test"
End Function
Jag anropar functionen från testvbp:n, stegar koden.
Dim x As SweWOX_WebServices.Class1, svar As Variant
x = New SweWOX_WebServices.Class1
svar = x.Test
På raden med X = ....
Får jag larmet 'Object variable or with block variable not set'
??
/ MikaelSv: Hjälp, måste komma igång med WebServices
T.ex.
dim x as kossa
Set x = new kossa
Sorry ;)Sv: Hjälp, måste komma igång med WebServices
Antar att Win2k inte har samma stöd för soap.
Vad behöver jag ladda hem till Win2k för att detta skall fungera?
På raden set soapClient.....
får jag larmet körfel 429, 'Objektet kan inte skapas i Active-X-Komponenten'.
Private Sub ws_test_Click()
'Create the SOAP Client
Dim soapClient
Set soapClient = CreateObject("MSSOAP.SoapClient")
'Initialize the soap client and pass the URL for
'the WSDL file as a parameter
Call soapClient.mssoapinit("http://www.kamalpatel.net/ConvertCSharp2VBService.asmx?WSDL")
'Call the Execute() method and display the results
Dim cRetVal As String
'cRetVal = soapClient.Execute(Me.txtCSharp.Text)
cRetVal = soapClient.Execute(Me.txtCSharp)
Me.txtVB = Replace(cRetVal, vbLf, vbCrLf)
End SubSv: Hjälp, måste komma igång med WebServices
Sv: Hjälp, måste komma igång med WebServices
Kan det ingå i sp4, eller är det annat som behövs.
(Jag har lagt på soaptoolkit 3.0, men utan resultat.)
/ MikaelSv: Hjälp, måste komma igång med WebServices
Sv: Hjälp, måste komma igång med WebServices
"C:\Program Files\Common Files\MSSoap\Binaries\mssoap30.dll".
Jag har testat på tre olika maskiner, samma konfig och samma resultat.
....
Nu även testat med sp4, samma negativa resultat.
/ MikaelSv: Hjälp, måste komma igång med WebServices
Det skall i w2k vara CreateObject("MSSOAP.SoapClient30")
/ Mikael