Laden...
Avatar #avatar-2269.gif
dani.net myCSharp.de - Member
Software-Developer Wil SG / Schweiz Dabei seit 07.07.2006 175 Beiträge
Benutzerbeschreibung

Forenbeiträge von dani.net Ingesamt 175 Beiträge

01.03.2007 - 14:46 Uhr

Kann das Problem nun zumindest etwas besser eingrenzen. Und zwar funktioniert es auch auf dem IIS 6, wenn der Client lokal läuft (also auf demselben Rechner wie der Host).
Das Problemt tritt also nur auf, wenn Host und Client nicht auf demselben Rechner laufen - was natürlich so ist 🙂

01.03.2007 - 13:23 Uhr

Original von Stube
Keine ahnung wie das funktionieren soll - bin anfänger 😕

Da gibts doch sone grosse Firma die mit G anfängt... die soll auch für Anfänger was sein 😁

virtuelle Verzeichnis als Webanwendung

Anfänger ist keine Ausrede, um Arbeit herumzukommen 😉

01.03.2007 - 13:20 Uhr

Original von Burnswigg
Hättest du vielleicht einen Ansatz, da ich mit Ajax noch nie was gemacht hab.

Calling Web Services from Client Script in ASP.NET AJAX

01.03.2007 - 12:14 Uhr

Du meinst diesen hier? connvision.CvSystem.Core.Services.Common.ProviderCredentialsValidator

Yops... sonst würds ja unter IIS 7 auch nicht laufen 🙂

01.03.2007 - 11:40 Uhr

kann es sein, dass du die (geänderten) Eigenschaften beim neu erstellen wieder überschreibst? Bei dynamisch erstellten Controls musst du sicherstellen, dass die Controls erstellt werden, bevor der ViewState geladen wird (LoadViewState-Methode).

Ansonsten poste mal etwas Code.

01.03.2007 - 11:32 Uhr

Du kannst die Files eines WebServers nicht mittels GetFiles() herausbekommen - man stelle sich das mal vor 🙂

Wenn der WebServer Directory-Listings unterstützt, könntest du dieses auslesen (HTML) und dann entsprechend parsen.

01.03.2007 - 11:02 Uhr

Salve

Ich bin gerade dran, einen WCF-Service unter Win2003 / IIS 6 als Host zum laufen zu bringen. Unter Vista / IIS 7 funktioniert das wunderbar.

Beim IIS 6 bekomme ich jetzt aber die Meldung:

System.ServiceModel.FaultException: An error occured when verifying security for the message.

Ich benutze Message-Security mit einer UsernamePassword-Authentication:


<system.serviceModel>
    <services>
      <service behaviorConfiguration="RmsServiceBehavior" name="connvision.CvSystem.Core.Services.RangeManagerService.RangeManagementService">
        <endpoint binding="wsHttpBinding"
                  contract="connvision.CvSystem.Core.Services.RangeManagerService.ServiceContracts.IRangeManagementService"
                  bindingConfiguration="RmsBinding" />
      </service>
    </services>
    <bindings>
      <wsHttpBinding>
        <binding name="RmsBinding">
          <security mode="Message">
            <message clientCredentialType="UserName" establishSecurityContext="false" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="RmsServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceCredentials type="connvision.CvSystem.Core.Services.Common.ProviderServiceCredentials, Services.Common.ServiceImplementation">
            <userNameAuthentication 
              userNamePasswordValidationMode="Custom"
              customUserNamePasswordValidatorType="connvision.CvSystem.Core.Services.Common.ProviderCredentialsValidator, Services.Common.ServiceImplementation" />
            <serviceCertificate findValue="localhost" 
              storeLocation="LocalMachine" storeName="My" 
              x509FindType="FindBySubjectName" />
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

Weiss da jemand was?

01.03.2007 - 10:57 Uhr

Du kannst ja dein XML direkt in die Seite schreiben (ohne HTML-Gerüst oder sonstigen Markup natürlich). Dann liest du von der anderen Seite her, das ganze mit einem HttpWebRequest aus.

01.03.2007 - 10:53 Uhr

Was meint denn hier die Doku?

Enables the server to gather information on the capabilities of the browser that is running on the client.

Da gehts also um die Fähigkeiten - nicht um die effektiven Werte.
Es gibt keine Möglichkeit, serverseitig herauszufinden, was der User für eine Auflösung benützt.

In JS gibts sicherlich die eine oder andere mehr oder weniger funktionierende Methode (edit: besseres Wort wäre Hack) dafür. Wenn du das dann in eine DB speichern willst, könntest du zB. mittels AJAX aus deinem JS heraus eine serverseitige Funktion aufrufen, die die Daten speichert.

28.02.2007 - 12:22 Uhr

Hab die Lösung hier gefunden

28.02.2007 - 11:04 Uhr

Hi

Ich hab ein kleines Custom Control entwickelt mit einem String[]-Property.
Das funktioniert auch alles tip-top, solange die Zuweisung im Code stattfindet. Über den Designer wird als Wert einfach "String[] Array" eingetragen - was natürlich kracht:

Cannot create an object of type 'System.String[]' from its string representation 'String[] Array' for the 'xxx' property.

Ich hab das ganze dann nocht mit den beiden Attributen


[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), PersistenceMode(PersistenceMode.InnerProperty)]
[TypeConverter(typeof(ArrayConverter))]

versucht zu steuern, allerdings ohne Erfolg.

Weiss jemand was man da machen kann?

27.02.2007 - 16:35 Uhr

Hat sich soeben erledigt - war nix mit KeepAlive. Der Grund war, dass beim verwendeten Binding der securityContext enabled war - deaktiviere ich diesen, funzt alles 😁 👍

27.02.2007 - 16:00 Uhr

Hi

Ich habe vor kurzem meine WebServices auf WCF umgestellt und seither plagt mich ein etwas seltsames Problem.

Da ist ein WS-Call a und b. Der a-Call kann ich x-mal ohne Probleme ausführen, beim b-Call klappt das 2-3 mal, dann nicht mehr. Und zwar wird die WS-Methode dann gar nicht mehr erst aufgerufen, dafür knallts dann beim Aufruf selbst mit einer TimeOut-Exception.

Zuerst dachte ich, es liegt irgendwie am HTTP KeepAlive (ich benutze IIS 7). Dann hab ich das ausgeschaltet, mit dem gleichen Ergebnis). Dann hab ichs eingeschaltet, und dann hat sich das Problem etwas verschoben:

Nun kann ich den b-Call (oder auch a-Call) x-mal ausführen, aber sobald ich danach den Call wechsle (also z.B. a,a,a,b), gehts dann nicht mehr (also im Beispiel steckt er beim ersten b-Call).

Steh irgendwie total auf dem Schlauch und weiss gar nicht recht wo noch suchen. Hat jemand vielleicht einen Tipp?

Gruss
dani.net

26.02.2007 - 17:01 Uhr

Hi cytrics

Na die Meldung sagts doch eigentlich schon - URI-Format wird für die GetFiles-Methode nicht unterstützt. Du bräuchtest also einen Filepfad à la C:\Windows
Aber wenn du für die Überprüfung eh nur die Extension prüfst, kannst du ja auch einfach manuell die letzten 3 Zeichen deines Pfades checken.

23.02.2007 - 15:24 Uhr

Da hast du dich aber bei deinem ersten Posting krass undeutlich ausgedrückt 🙂

Das Stichwort bei deinem Problem heisst Reflection.

So kurz aus dem Kopf müsste das etwa so aussehen:


System.Reflection.PropertyInfo property = myTxt.GetType().GetProperty("Text");
property.SetValue(myTxt, "myText", null);

23.02.2007 - 14:47 Uhr

Original von herbivore

dann binde mal ein Objekt dieser Klasse an ein PropertyGrid. Dann wirst du den Unterschied sehen. Das gleiche bei DataBindung. Oder verwende XML-Serialisierung. Auch da gibt es jeweils Unterschiede. Also für die Eigenschaften einer Klasse immer schön Properties statt public Fields verwenden, auch wenn man den Sinn (noch) nicht sieht.

Seh ich genauso... hab letzthin einen Blog-Eintrag dazu gelesen (find's nicht mehr). Da wurde darüber philosophiert für was das ewige Variablen-Gekapsle eigentlich gut sein soll, wenn man nur ganz einfach setzt und liest.

Im Prinzip kann man ja sagen, solange man keine Properties braucht, benutzt man sie nicht - einführen ist ja einfach und geschieht ohne Namensänderung gegen Aussen.
Die Problematik dahinter ist aber, dass obwohl der Name gleich bleibt dies sehr wohl eine Interface-Änderung bedeutet. Eine Variable ist nun mal kein Property.
Und da jeder weiss wie schnell aus einer kleinen Bastel-Komponente plötzlich ein Verkaufsschlager wird, machts man lieber von Anfang an richtig. Nachteile hat man dadurch keine - die Tipparbeit kann man sich ja durch Generatoren ersparen lassen.

23.02.2007 - 09:41 Uhr

Ok habs nun hingekriegt. Ich hab das immer in der PowerShell probiert, nun hab ichs mal im klassichen cmd gemacht - und siehe da: es funktioniert! Keine Ahnung wieso...

22.02.2007 - 16:03 Uhr

Original von svenson
Ich hab j so das Gefühl, dass "'1" Tippfehler sind.

Gem. Doku muss das rein - und zwar gibt die 1 die Anzahl der generischen Typen an, bei der GenericList also 1.

Ich habs allerdings auch ohne probiert - mit dem gleichen Ergebnis. Wenn ich eine ArrayList angebe, funktionierts ohne Probleme.

22.02.2007 - 12:18 Uhr

Naja bytes sind bytes und können auch als byte geändert werden.

Ob du das nun hexadezimal oder dezimal machst kommt aufs gleiche raus - ist ja nur ne andere basis.



byte a = 0xA;
byte b = 10;
bool c = a == b; // true!


Oder hab ich dich da missverstanden?

22.02.2007 - 12:13 Uhr

Hi

Ich generier mir mit svcutil einen Client für einen WCF-Service. Nun hats ja da den /CollectionType - Switch mit dem man steuern kann, wie Arrays deserialisiert werden. Nur funktioniert das bei mir überhaupt nicht.

Wenn ich das so wie hier mache, erhalte ich die Meldung:

Error: No type could be loaded for the value System.Collections.Generic.List1 passed to the /collectionType option. Ensure that the assembly this type belongs to is specified via the /reference options

Mein Aufruf sieht so aus:


svcutil http://localhost/rms/rangemanagementservice.svc /r:"C:\Windows\Microsoft.NET\Framework64\v2.0.50727\System.dll" /ct:System.Collections.Generic.List`1

21.02.2007 - 16:30 Uhr

Danke für Deine super Erklärung, war sehr klärend!

Gruss
Dani

21.02.2007 - 15:29 Uhr

mmh dann kommts richtig.

Ist mir jetzt aber nicht ganz klar. Ich benutze die DataContracts für die Modellierung der eigentlichen Datentypen die innerhalb der Messages verwendet werden. Die Messages markierte ich, wie erwähnt, mit dem MessageContract-Attribut. Ist das nicht der richtige Weg so?

21.02.2007 - 14:13 Uhr

Hi

Ich hab einen WCF-Service erstellt und nun das Problem, dass alle Messages im CientCode "entwrapped" werden.

Ein kleines Beispiel:

Die Request-Message:


[MessageContract]
public class Request
{
  [MessageBodyMember]
  public string Test;
}

Der zugehörige Service:


[OperationContract]
public void Test(Request req);

Der Client-Code interpretiert generiert mir für diese Methode nun aber folgende:


public void Test(string test);

Also er zerpflückt mein Request-Objekt und übergibt dessen Member als Methoden-Parameter.

Das Problem habe ich mit svcutil wie auch mit der "alten" "WebVerweis hinzufügen"-Variante.

Was ich erreichen möchte ist schlicht und einfach, dass er alle Methoden so übernimmt wie ich das definiert habe: also Request-Objekt rein, Response-Objekt raus.

Weiss jemand Rat?

Gruss
Dani

07.07.2006 - 15:35 Uhr

Evtl. eleganter ist es, die Iteration der ArrayList vom letzten Element her zu beginnen - so stellst du sicher, dass keine Elemente die noch vor dem aktuellen Iterator-Wert liegen, geändert werden.