AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Prism Webservice auf anderen Server kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Webservice auf anderen Server kopieren

Ein Thema von Jelly · begonnen am 25. Jan 2006 · letzter Beitrag vom 26. Jan 2006
Antwort Antwort
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

Webservice auf anderen Server kopieren

  Alt 25. Jan 2006, 20:28
Dieser Thread hat definitiv meine Neugier geweckt, und nun möchte ich natürlich mehr verstehen.

Ich habe nun mal einen wirklichen simplen Webservice in Delphi 2006 erstellt, der auch wunderbar auf meinem lokalem Rechner läuft. Das Ding kann tatsächlich 2 Zahlen annehmen, diese addieren und mir das Ergebnis zurückgeben.

Jetzt habe ich versucht den Webservice auf einen anderen Rechner im Lan zu kopieren. Dazu hab ich einfach das gesamte Webverzeichnis kopiert, und versucht den Webservice über den Browser aufzurufen... Da kommt aber nicht ganz viel, nur die Fehlermeldung

Code:
Serverfehler in der Anwendung '/'.
--------------------------------------------------------------------------------

Laufzeitfehler
Beschreibung: Auf dem Server ist ein Anwendungsfehler aufgetreten. Aufgrund der aktuellen benutzerdefinierten Fehlereinstellungen für diese Anwendung können die Details des Anwendungsfehlers nicht angezeigt werden.

Details: Sie können die Details dieser Fehlermeldung auf dem lokalen Computer anzeigen, indem Sie ein <customErrors>-Tag in der Konfigurationsdatei "web.config" erstellen, die sich im Stammverzeichnis der aktuellen Webanwendung befindet. Das 'mode'-Attribut dieses <customErrors>-Tag sollte auf 'remoteonly' gesetzt sein. Sie können die Details auf Remotecomputern anzeigen, indem Sie 'mode' auf 'off' setzen.




<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>
 

Hinweise: Die aktuelle Seite kann durch eine benutzerdefinierte Fehlerseite ersetzt werden, indem Sie das 'defaultRedirect'-Attribut des <customErrors>-Konfigurationstags dieser Anwendung so setzen, das es auf einen benutzerdefinierten Fehlerseiten-URL zeigt.




<configuration>
    <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>
Deshalb hier die Frage(n):
1. Warum läuft der Service nicht auf dem anderen Rechner
2. Muss ich eigentlich wirklich das gesamte Verzeichnis kopieren? Welche Dateien reichen da aus.

Ich hab mal das ganze Projekt mal angehängt, vielleicht liegts ja auch am Code.
Angehängte Dateien
Dateityp: zip math_209.zip (132,4 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Webservice auf anderen Server kopieren

  Alt 25. Jan 2006, 20:47
Du musst eigentlich nur ein virtual directory anlegen mit einem Unterordner Bin. Dorthin packst du die DLL.
Im Hauptordner legst du deine .asmx. Da du keine spezielle web.config hast, musst du sie auch nicht dazu packen.
Falls du .Net 2.0 installiert hast, solltest du dem VDir sagen, das es 1.1 benutzen soll (Im ASP.Net Reiter)
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Webservice auf anderen Server kopieren

  Alt 25. Jan 2006, 21:02
Ich hab .NET 1.1 auf dem Server.

Da Bin Verzeichnis hab ich als Unterverzeichnis meines Webdienstes liegen. Klappt nicht, auch nicht wenn ich ein VDIR erstellt.

Muss ich noch irgendwelche Berechtigungen vergeben? Ich hab grad mal eine einfach ASP.NET Anwendung probiert (also kein Webdienst), die Anwendung läuft auch nicht, so dass ich denk der Server ist irgendwie falsch konfiguriert.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Webservice auf anderen Server kopieren

  Alt 25. Jan 2006, 22:55
Falls du über einen Browser darauf zugreifen willst, must du noch im Reiter Documents den Namen deiner amsx eintragen.
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Webservice auf anderen Server kopieren

  Alt 25. Jan 2006, 23:01
Welcher "Reiter Documents"? Im IIS oder wo? Da stehen doch nur die Default Seiten drin, wenn kein Dokument angegeben wird.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Webservice auf anderen Server kopieren

  Alt 25. Jan 2006, 23:48
Oki...
Damit wir von gleichen Voraussetzungen ausgehen...
ich habe mal dieses Minimalistische Beispiel gemacht.

Das ar einfach eine neue ClassLibrary (dürfte in D.Net Package heißen).
Als Referenz habe ich ihr System.Web.Services verpasst (kann sein, dass D.Net das public vor dem class nicht mag...).
Delphi-Quellcode:
unit SampleService;

interface
uses
   System.Web.Services;
   
type
  Sample = public class(WebService)
  public
      [WebMethod]
      function Add(left, right : Integer) : Integer;
  end;
  
implementation

function Sample.Add(left, right : Integer) : Integer;
begin
   result := left + right;
end;
Dann noch eine minimalistische asmx als Einsprungspunkt für die Klasse:<%@ WebService Class="SampleService.Sample" %> -> läuft...

btw: Ich habe hier absichtlich auf IDE Zaubereien verzcihtet
Miniaturansicht angehängter Grafiken
vdir_settings_924.png  
Angehängte Dateien
Dateityp: zip vdir_200.zip (1,8 KB, 11x aufgerufen)
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Webservice auf anderen Server kopieren

  Alt 26. Jan 2006, 09:16
Also ich krieg das einfach nicht gebacken

Ich habe dein Beispiel jetzt auf meinen Rechner (auf dem, wo mein MathService einwandfrei läuft) in ein separates Verzeichnis unter wwwroot\sampleservice kopiert. Anschliessend ein VDIR erstellt (sampleservice(, und die Rechte vergeben, wie Du vorgeschlagen hast. Aber egal was ich in diesem sampleservice als asp.net Datei reinlege (ob Service asmx oder Anwendung aspx), ich krieg immer folgende Fehlerseite:

Code:
Serverfehler in der Anwendung '/sampleservice'.
--------------------------------------------------------------------------------

Der Zugriff auf 'C:\Inetpub\wwwroot\sampleservice\BIN' wurde verweigert. Das Überwachen der Dateiänderungen konnte nicht gestartet werden.
Beschreibung: Beim Ausführen der aktuellen Webanforderung ist ein unverarbeiteter Fehler aufgetreten. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

Ausnahmedetails: System.Web.HttpException: Der Zugriff auf 'C:\Inetpub\wwwroot\sampleservice\BIN' wurde verweigert. Das Überwachen der Dateiänderungen konnte nicht gestartet werden.

Quellfehler:

Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden.

Stapelüberwachung:


[HttpException (0x80070005): Der Zugriff auf 'C:\Inetpub\wwwroot\sampleservice\BIN' wurde verweigert. Das Überwachen der Dateiänderungen konnte nicht gestartet werden.]
   System.Web.DirMonCompletion..ctor(DirectoryMonitor dirMon, String dir, Boolean watchSubtree, UInt32 notifyFilter) +140
   System.Web.DirectoryMonitor.StartMonitoring() +42
   System.Web.DirectoryMonitor.StartMonitoringFile(String file, FileChangeEventHandler callback, String alias) +154
   System.Web.FileChangesMonitor.StartMonitoringDirectoryRenamesAndBinDirectory(String dir, FileChangeEventHandler callback) +413
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +331

[HttpException (0x80004005): ASP.NET-Initialisierungsfehler]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +982
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +128

 


--------------------------------------------------------------------------------
Versionsinformationen: Microsoft .NET Framework Version:1.1.4322.2032; ASP.NET-Version:1.1.4322.2032
Das ist mir alles irgendwie noch bischen mysteriös... Gibts irgendwo eine leicht verständliche Einleitung, wie man Delphi.NET Webanwendungen auf einem anderen Server (oder sogar auch nur Verzeichnis) veröffetnlichen kann. In meinem Buch steht zwar ganz nett, wie man Webanwendungen erstellt und auch Webservice Beispiele sind drin, aber nirgends steht wie ich die Anwendung auf einem anderen Webserver zum Laufen krieg.

EDIT: OK, hab jetzt noch schnell nachgekuckt... im BIN Verzeichnis waren die falschen NT Sicherheitseinstellungen. Da stand nur System, warum auch immer. Hab jetzt die Einstellungen vom übergeordneten Ordner übernommen, und es scheint zu laufen... Ich kann leider erst heut abend testen, ob ich auf gleichem Weg die Anwendung auf einem anderem Webserver zum Laufen kriege.

Was sind denn die minimalen Sicherheitseinstellung auf Verzeichnisebene die ich einstellen muss, damit eine ASP.NET läuft.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Webservice auf anderen Server kopieren

  Alt 26. Jan 2006, 19:06
Also ich hab den Service nun auch auf dem anderen Rechner zum Laufen gebracht. War auch dort ein Zugriffsberechitungsproblem.

Vielen Dank.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz