Autor Beitrag
pascalsv
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133

Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
BeitragVerfasst: Di 02.09.08 16:19 
Hallo zusammen,

ich versuche zurzeit, den Zugriff auf WebServices zu verstehen. Dazu habe ich ein ASP.NET Web Application Projekt angelegt und den WebService hinzugefügt. Soweit so gut.
Dann habe ich die URL zum WebService geändert (da ich einen anderen nutzen wollte) und nun laufe ich permanent in diesen Fehler:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
Server Error in '/' Application.
--------------------------------------------------------------------------------

Parser Error 
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 

Parser Error Message: Could not load type 'ByDWebClient._Default'.

Source Error: 


Line 1:  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ByDWebClient._Default" %>
Line 2:  
Line 3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 

Source File: /Default.aspx    Line: 1 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433


Ich verstehe nicht, was hier falsch läuft. Auf diversen Seiten wird bei diesem Problem empfohlen, das Projekt neu zu veröffentlichen. Aber ich erstelle doch ein Projekt für den Zugriff auf einen WebService und nicht den Service selbst. Ausserdem ging es vor Änderung des WebService einwandfrei.

Was tun??

Danke,

Pascal
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: Di 02.09.08 16:48 
Die Methodensignatur ist identisch?

Übrigens eine seltene Visual-Studio-Version, die Du da hast... :mrgreen:
pascalsv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133

Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
BeitragVerfasst: Di 02.09.08 17:07 
Hallo Robert,

ich denke schon. Hier:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
...
using ByDWebClient.StefansWebService;

namespace ByDWebClient
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Label1.Text = "Nüscht";
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            StefansWebService.GetReportListResponse WebServiceReportListResponse =
                new StefansWebService.GetReportListResponse();
            Label1.Text = WebServiceReportListResponse.EtReportList.GetLength(0).ToString();
        }
    }
}


Pascal
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: Di 02.09.08 20:00 
Ich meinte natürlich die Signatur der beiden Webservices...

Und der Webservice heißt tatsächlich GetReportListResponse?

Poste doch mal den Webservice.
pascalsv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133

Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
BeitragVerfasst: Mi 03.09.08 09:12 
Hallo Robert,

anbei ein Screnshot der WebService Definition: webservice.jpg. GetReportList ist lediglich eines der Methoden. Oh je, ich glaube, ich mache hier "etwas" Grundlegendes falsch.

Würdest Du mir bitte unter die Arme greifen??

Zum besseren Verständnis, hier ein Screenshot der Definition, die VS2008 daraus baut: webservice_def.jpg.

Mein Coding sieht dann so aus:
ausblenden C#-Quelltext
1:
2:
3:
StefansWebService.GetReportListResponse ReportListResponse = new GetReportListResponse();
lbResult.Items.Add("Result from Web Service:");
lbResult.Items.Add("Count: " + ReportListResponse.EtReportList[0].Value);


Danke,

Pascal
Einloggen, um Attachments anzusehen!
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: Mi 03.09.08 10:02 
user profile iconpascalsv hat folgendes geschrieben:
[...] GetReportList ist lediglich eines der Methoden. [...]

Aha. ;)

Erstmal erstellst Du eine Instanz Deines WebServices (genauer eigentlich der Proxy-Klasse):

ausblenden C#-Quelltext
1:
StefansWebService ws = new StefansWebService();					

und dann kannst Du auf dessen Methoden wie bei einer lokalen Klasse zugreifen:

ausblenden C#-Quelltext
1:
MeinErgebnis = ws.MacheIrgendWas(MitParameter);					

oder

ausblenden C#-Quelltext
1:
ws.MachWasOhneParameterUndRueckgabewert();					

Eigentlich ganz simpel - einfach nur geradeaus denken. ;) Anspruchsvoller wird es erst bei asynchronen Webservices... :mrgreen:
pascalsv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133

Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
BeitragVerfasst: Mi 03.09.08 10:33 
[quote="user profile iconRobert.Wachtel]

ausblenden C#-Quelltext
1:
StefansWebService ws = new StefansWebService();					

[/quote]

Hallo Robert,

hier bekomme ich die Fehlermeldung: "'AccessByDWebService.StefansWebService' is a 'namespace' but is used like a 'type'". Warum?

So sieht die Definition in der reference.cs aus:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
namespace AccessByDWebService.StefansWebService {
    
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel""3.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="urn:sap-com:document:sap:soap:functions:mc-style", ConfigurationName="StefansWebService.ByDCrystalReportDT")]
    public interface ByDCrystalReportDT {
        
        // CODEGEN: Generating message contract since the operation GetQueryData is neither RPC nor document wrapped.
        [System.ServiceModel.OperationContractAttribute(Action="", ReplyAction="*")]
        [System.ServiceModel.XmlSerializerFormatAttribute()]
        AccessByDWebService.StefansWebService.GetQueryDataResponse1 GetQueryData(AccessByDWebService.StefansWebService.GetQueryDataRequest request);

...

    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml""2.0.50727.1433")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="urn:sap-com:document:sap:soap:functions:mc-style")]
    public partial class GetQueryData : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string iQueryField;
        
        private _a1s_ccaCrVarValue[] itVarValueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
        public string IQuery {
            get {
                return this.iQueryField;
            }
            set {
                this.iQueryField = value;
                this.RaisePropertyChanged("IQuery");
            }
        }


Pascal
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 03.09.08 11:08 
user profile iconRobert.Wachtel hat folgendes geschrieben:
user profile iconpascalsv hat folgendes geschrieben:
[...] GetReportList ist lediglich eines der Methoden. [...]

Aha. ;)
Webservice-Methoden => CLR-Klassen, wenn ich mir den zweiten Screenshot so ansehe ;) .

Aber der Fehlermeldung nach hat das Problem doch überhaupt nichts mit den Services zu tun, irgendwie hast du dir deine Default.aspx zerschossen. Lass dir das Projekt noch einmal "Neu erstellen" und schau im Reflector nach, ob die Klasse "ByDWebClient._Default" wirklich existiert.

_________________
>λ=
pascalsv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133

Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
BeitragVerfasst: Mi 03.09.08 11:18 
Hmmm,

ich habe mir die reference.cs noch einmal angesehen. Hier gibt es die Klasse, die "meine" Methoden beinhaltet:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
    public partial class ByDCrystalReportDTClient : System.ServiceModel.ClientBase<AccessByDWebService.StefansWebService.ByDCrystalReportDT>, AccessByDWebService.StefansWebService.ByDCrystalReportDT {
        
        public ByDCrystalReportDTClient() {
        }
        
        public ByDCrystalReportDTClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public ByDCrystalReportDTClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public ByDCrystalReportDTClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public ByDCrystalReportDTClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        AccessByDWebService.StefansWebService.GetQueryDataResponse1 AccessByDWebService.StefansWebService.ByDCrystalReportDT.GetQueryData(AccessByDWebService.StefansWebService.GetQueryDataRequest request) {
            return base.Channel.GetQueryData(request);
        }
        
        public AccessByDWebService.StefansWebService.GetQueryDataResponse GetQueryData(AccessByDWebService.StefansWebService.GetQueryData GetQueryData1) {
            AccessByDWebService.StefansWebService.GetQueryDataRequest inValue = new AccessByDWebService.StefansWebService.GetQueryDataRequest();
            inValue.GetQueryData = GetQueryData1;
            AccessByDWebService.StefansWebService.GetQueryDataResponse1 retVal = ((AccessByDWebService.StefansWebService.ByDCrystalReportDT)(this)).GetQueryData(inValue);
            return retVal.GetQueryDataResponse;
        }


Nur wie komme ich nun an die Methode "GetQueryData"? Ich habe folgendes versucht:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
 
using AccessByDWebService.StefansWebService;
.
.
.           
ByDCrystalReportDTClient ws = new ByDCrystalReportDTClient("http://****F208BE3/wsdl11/allinone/ws_policy/document?***nt=100");
            if (ws != null)
            {
                lbResult.Items.Add("Result from Web Service:");
                GetReportListResponse Response = new GetReportListResponse();
                Response = ws.GetReportList();
                lbResult.Items.Add("Count: ");
            }

Aber dann wirft er den Fehler "No overload for method 'GetReportList' takes '0' arguments". Bei dieser Methode soll aber eigentlich kein Parameter übergeben werden. Ich raff es einfach nicht.... :cry:

Danke,

Pascal
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 03.09.08 11:33 
Von Webservices verstehe ich nicht viel, aber war dein ursprünglicher Code nicht richtig :nixweiss: ? Wenigstens ließ er sich noch kompilieren ;) ...

Ansonsten: Welchen Parameter will er denn?

_________________
>λ=
pascalsv Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133

Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
BeitragVerfasst: Mi 03.09.08 12:15 
user profile iconKha hat folgendes geschrieben:
Ansonsten: Welchen Parameter will er denn?


Wie in der Signatur angegeben: AccessByDWebService.StefansWebService.GetQueryData GetQueryData1...

Aber was soll das sein? Ich denke, ich mache hier etwas Grundlegendes falsch....

:(

Pascal
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 03.09.08 14:20 
user profile iconpascalsv hat folgendes geschrieben:
user profile iconKha hat folgendes geschrieben:
Ansonsten: Welchen Parameter will er denn?


Wie in der Signatur angegeben: [...]
Die Signatur hast du uns aber noch gar nicht gezeigt, wenn ich nichts übersehe :nixweiss: . Ich glaube, du verwechselst die Methode gerade mit "GetQueryData".

Darauf würde ich aber gerne noch eine Antwort erhalten:
user profile iconKha hat folgendes geschrieben:
Aber der Fehlermeldung nach hat das Problem doch überhaupt nichts mit den Services zu tun, irgendwie hast du dir deine Default.aspx zerschossen.

user profile iconKha hat folgendes geschrieben:
Von Webservices verstehe ich nicht viel, aber war dein ursprünglicher Code nicht richtig :nixweiss: ? Wenigstens ließ er sich noch kompilieren ;) ...

_________________
>λ=