Avatar billede mach3 Nybegynder
09. september 2004 - 14:55 Der er 20 kommentarer og
1 løsning

Web Service, placering af dll i bin mappen: hvor?

Hej!

Jeg skal anvende en web service (sidder og tester på min egen maskine)

Jeg har:
1. anvendt wsdl til at generere en proxy. output
2. anvendt vbc compileren til at lave denne proxy om til en dll.
3. placeret denne dll i bin mappen i visual studio.net (C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin)
4. lavet en aspx side som anvender en funktion fra web servicen som om det var noget der lå på den lokale maskine (business object)

Men: det virker ikke, når jeg prøver at åbne aspx filen i internet explorer kommer der en fejl: type 'x' is not defined.

Er der nogen som kan se om jeg gør noget afgørende forkert?

Mvh
Avatar billede mach3 Nybegynder
09. september 2004 - 14:56 #1
hovsa - bare ignorer "output" under punkt et!
Avatar billede arne_v Ekspert
09. september 2004 - 14:58 #2
Skal den DLL ikke anbringes i bin directory ovre i web server træet ?
Avatar billede mach3 Nybegynder
09. september 2004 - 15:00 #3
Hvad er det for et web server træ?
Avatar billede mach3 Nybegynder
09. september 2004 - 15:01 #4
Skal lige siges at det hele kører på min egen maskine - jeg anvender bare localhost/testFile.aspx til at teste web servicen.
Avatar billede arne_v Ekspert
09. september 2004 - 15:08 #5
På min gamle IIS kan jeg ligge .aspx i C:\inetpub\wwwroot
og .dll i C:\inetpub\wwwroot\bin
Avatar billede mach3 Nybegynder
09. september 2004 - 15:13 #6
Jeg har ingen bin mappe på den placering...?
Avatar billede arne_v Ekspert
09. september 2004 - 15:14 #7
Det havde jeg heller ikke, men jeg lavede en !
Avatar billede mach3 Nybegynder
09. september 2004 - 15:15 #8
Har lige prøvet at oprette en bin mappe dér og lægge dll'en derind - men stadig det samme!... :-(
Avatar billede mach3 Nybegynder
09. september 2004 - 15:16 #9
Det er vel ikke nødvendigt at genstarte maskinen hver gang man rykker rundt på en dll?
Avatar billede arne_v Ekspert
09. september 2004 - 15:22 #10
Det burde ikke være nødvendigt. Og under alle omstændigheder kan du nøjes
med at restarte IIS.
Avatar billede mach3 Nybegynder
09. september 2004 - 15:26 #11
Har prøvet at genstarte IIS. Virker stadig ikke! :-) Det må da næsten være den dll der er placeret forkert eller hvad kan der ellers være galt?

Tak
Mvh
Avatar billede arne_v Ekspert
09. september 2004 - 15:30 #12
Har du styr på namespace navn og klasse navn ?
Avatar billede mach3 Nybegynder
09. september 2004 - 15:37 #13
Nu poster jeg noget kode - det kan være det hjælper. Der er tale om et eksempel fra SAMS publishing som er fra en ASP.NET bog - det burde virke!
Avatar billede mach3 Nybegynder
09. september 2004 - 15:38 #14
Her er asmx filen:

<%@ WebService Language="VB" Class="Calculator" %>

Imports System.Web.Services

public Class Calculator : Inherits WebService
  <WebMethod()> Public Function Add(intA As Integer, _
      intB As Integer) As Integer
      Return(intA + intB)
  End Function
End Class

Jeg laver en proxy med følgende kommando:
wsdl /l:VB http://localhost/test/code/day16/calculator.asmx?WSDL
Avatar billede mach3 Nybegynder
09. september 2004 - 15:39 #15
Output: calculator.vb
Avatar billede mach3 Nybegynder
09. september 2004 - 15:41 #16
Denne fil skal så compiles til en dll. Det sker med:
vbc /t:library /out:CalculatorServiceClient.dll /r:System.dll /r:System.XML.dll /r:System.Web.Services.dll Calculator.vb

Output: CalculatorServiceClient.dll
Avatar billede mach3 Nybegynder
09. september 2004 - 15:42 #17
Denne dll placerer jeg så i bin mappen (måske det er den forkerte bin mappe - for der er ingen andre dll'er dér...)
sti: C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin
Avatar billede mach3 Nybegynder
09. september 2004 - 15:42 #18
Herefter kører jeg så aspx filen som ser ud på følgende måde:

<%@ Page Language="VB" %>

<script runat="server">
  sub Page_Load(Sender as Object, e as EventArgs)
      dim objCalc as new Calculator
     
      lblMessage.Text = objCalc.Add(1,5)
  end sub 
</script>

<html><body>
  The answer to 1 + 5 is:
  <asp:Label id="lblMessage" runat="server"/>
</body></html>
Avatar billede mach3 Nybegynder
09. september 2004 - 15:43 #19
Det var det hele. Altså et lille eksempel som burde virke, men det er ikke tilfældet...
Avatar billede mach3 Nybegynder
10. september 2004 - 12:20 #20
Ok har fået det til at virke. Det jeg gjorde var:

Oprette et nyt project i Visual Studio .NET og kopiere aspx filen (7som skal anvende web servicen) ind i projekt mappen og herefter åbne den.

Den dll som blev genereret tidligere kopieres ind i bin mappen som også ligger i projekt mappen.

Herefter tryk F5 fra Visual Studio .NET og så kører det...

Hvorfor det ikke virker uden Visual Studio .NET har jeg stadig ikke helt fundet ud af. Der er tilsyneladende nogle ekstra filer som er nødvendige for at det kører.
Avatar billede mach3 Nybegynder
11. september 2004 - 09:09 #21
done
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester