Hey wettmasta,
deine Lösung erinnert mich an dieses Step-By-Step Tutorial.
Step By Step - Using Silverlight to Access a WCF Service Hosted In a Console Application
Das habe ich schon nachgebaut und es kommt nach wie vor der gleiche Fehler.
@ wettmasta
Wo soll der Code, den Du gepostet hast überhaupt rein?
Die Main wollte ich in die Silverlight Anwendung packen. Da kann ich aber nicht auf die ServiceHost Klasse zugreifen.
Oh, wusste gar nicht, dass es die auch in den online-Vorlagen gibt.
Kann mir Jemand sagen, ob das prinzipielle Vorgehen hier korrekt ist?
Ich probiere mal mein Vorgehen zu erklären, vll liegt ja schon da der Fehler.
(VS Studio starten)
Neues Cloud Projekt erstellen
WebRole hinzufügen
Rechtsklick auf Webrole -> Neues Element hinzufügen -> Silverlight Service
Rechtsklick auf Services -> In Browser anzeigen (Startet Services)
Rechtsklick auf Projekt -> Neues Projekt hinzufügen -> Silverlight Anwendung
Rechtsklick auf Silverlight-Projekt -> Dienstverweis? hinzufügen (Service Auswählen)
Entwas Code schreiben um auf Service zuzugreifen
clientaccesspolicy.xml aus Onlinevorlage runterladen und anpassen
crossdomain.xml in Webrole root hinzufügen
Debuggen
Fehler
Hab ich irgendwas vergessen?
hast du die clientaccesspolicy.xml auch auf Serverseite des WCF-Services hinzugefügt? Dort gehört diese nämlich hin.
Wie gesagt habe ich die clientaccesspolicy.xml lediglich in den root Ordner der WebRole eingefügt.
wie läuft denn dein WCF Service bei dir? Als Windows-Dienst?
Der Service läuft im IIS7, soweit ich weiss. Ich lasse mir die Services immer über "Rechtsklick->Im Browser anzeigen" anzeigen. Da werden sie automatisch gestartet.
@wettmasta
Dein Beispiel verstehe ich nicht ganz. Wo wird denn die CrossDomainService-Klasse verwendet?
Hey,
Danke für die Antwort aber auf den Artikel bin ich bei meiner Rechereche bestimmt schon 4 mal gestoßen.
Habe sowohl die clientaccesspolicy.xml als auch die crossdomain.xml in die root-Ordner und (aus Verzweiflung) auch in so ziemlich alle anderen Ordner eingefügt. Beide xml sind auch über den Webbrowser abrufbar. Also "localhost:port/clientaccesspolicy.xml"
Ich habe auch mal Firebug nebenher laufen lassen. Da wird mir nirgends angezeigt, dass er probiert auf die clientaccesspolicy.xml zuzugreifen. Ist das normal?
Muss man das vll erst in irgend einer Einstellung festlegen?
Hallo,
und wie fügt man dem WCF-Dienst die crossdomain.xml hinzu? Spontan hab ich nichts bei google gefunden.
Hallo,
ich habe ein Azure-Cloud-Projekt, dass eine Webrole hat, die einen WCF-Dienst bereit stellt. Auf diesen Dienst soll eine Silverlight Anwendung zugreifen.
Das Problem ist, dass ich selbst beim lokalen Debuggen folgende Fehlermeldung bekomme:
Fehler beim Senden einer Anforderung an den URI "http://localhost:87/Service1.svc". Ursache ist möglicherweise, dass ohne die entsprechende domänenübergreifende Richtlinie oder mit einer nicht für SOAP-Dienste geeigneten Richtlinie domänenübergreifend auf einen Dienst zugegriffen wurde. Möglicherweise müssen Sie sich an den Besitzer des Diensts wenden, damit eine domänenübergreifende Richtliniendatei veröffentlicht und das Senden von sich auf SOAP beziehenden HTTP-Headern zugelassen wird. Dieser Fehler kann auch durch Verwendung von internen Typen im Webdienstproxy ohne das InternalsVisibleToAttribute-Attribut verursacht werden. Weitere Details finden Sie in der inneren Ausnahme.
Im Web habe ich viele Posts und Blogs zu diesem Thema gefunden. Allerdings war es da immer so, dass die Anwendung lokal funktioniert hat und erst beim Hochladen auf den Server nicht mehr funktionierte, oder einfach die "clientaccesspolicy.xml" hinzugefügt werden musste.
Die "clientaccesspolicy.xml" habe ich aber bereits hinzugefügt und nichts hat sich verbessert.
Bin über alle Ansätze dankbar.
Gruß
Puppetmaster
Zum System:
Windows 7 Enterprise
SQL-Server Express
IIS 7
VS 2010
Silverlight 4
.Net 4.0
aloha,
ich denke die meisten von euch kennen diese miniventilatoren mit leds.
http://www.stimmungsartikel.de/sortiment.php?pg=160&p=2718
jetzt suche ich einen miniventilator mit led's und einer schnittstelle zum pc. so, dass ich ihn vom pc aus programmieren kann und er auch vom computer mit strom versorgt wird.
so etwas gibt es auch (http://www.misternightlight.de/product_info.php?info=p243_STARTERSET-MINI-VENTILATOR.html). doch leider nur immer in diesen startersets.
findet vll jemand einen shop, in dem man diese miniventilatoren einzeln bekommen kann?
a hui hau
puppet
aloha,
guck mal hier:
https://developer.sonyericsson.com/site/global/docstools/misc/p_misc.jsp
dann auf "Technical Docs & Training" und "Developers' Guidelines - AT Commands"
hoffe ich konnte dir helfen
a hui hau
puppet
aloha,
auf so was in der art wird es leider hinauslaufen, befürchte ich.
das problem ist, dass die globalen daten etwas umfangreicher und komplizierter sind, als dass man sie einfach in einen hashtable schreiben könnte.
wenn überhaupt würde ich einfach die "Global" klasse übergeben.
bloß leider wäre sie damit nicht mehr statisch und ich müsste einen großteil im projekt umschreiben. nicht nur, dass das einige stunden arbeit in anspruch nehmen würde, es würde (wahrscheinlich) die performance geringfügig verschlechtern und den code verkomplizieren.
sachen, die ich gerne vermeiden würde, wenn es geht.
a hui hau
puppet
aloha,
@ChristianR
"Ein anderes Stichwort sind ExtensionMethods (allerdings kannst du damit nur neue Methoden zu einer Klassen hinzufügen die es noch nicht gibt, sonst gewinnt die Klassenmethode)"
Soweit ich weiss, gilt das auch für partial Class.
Jedenfalls sind diese nicht dafür da vorhandene Methoden zu überschreiben, sondern um den quellcode übersichtlich zu halten.
a hui hau
puppet
aloha,
@Golo Roden
das mit den one word answers war keine ironie. kurz und effektiv. so wie antworten sein sollten.
leider hat herbivore recht. scheinbar hat wirklich jedes plugin seinen eigenen satz statischer variablen. singleton funktioniert jedenfalls nicht.
gibts weitere ideen?
a hui hau
puppet
aloha,
ich liebe diese one word answers ^^
dann begeb ich mich mal auf googles spuren und meld mich dann wieder.
a hui hau
puppet
aloha,
ich habe ein programm, dass auf plugins basiert.
da die plugins und der host die gleichen daten benötigen wollte ich eine klasse mit statischen membern machen, die diese daten hält. die klasse heißt "Global".
statisch damit ich überall in meinem projekt über Global.xxx auf die daten zugreifen kann.
leider erstellt sich jedes plugin/host eine eigene instanz der Global klasse.
wie bekomme ich es hin, dass die klasse Global wirklich nur einmal instanziert wird und alle andern klassen auf diese eine instanz zugreifen?
eine nicht statische lösung mittels übergabe wäre ziemlich bescheiden zu programmieren.
a hui hau
puppet
aloha,
was muss man denn installiert haben um die microsoft.mshtml.dll zu besitzen?
ich musste sie mir extra runterladen, um das programm kompilieren zu können.
ansonsten isses noch recht buggy (is bei mir gleich mal abgeschmiert bei ner 0 länge).
habs jetzt aber nicht großartig getestet. liegt vll daran, dass ich gerade net kapier, wie das teil überhaupt funktionieren soll ^^
a hui hau
puppet
aloha,
mehrere tausend zeilen code? die klasse scheint mir eher schlecht programmiert als mächtig.
anyway...
wenn du die klasse im textformat vorliegen hast kannst du einfach über eine stream-klasse auf sie zugreifen und modifizieren.
a hui hau
puppet
aloha,
thx. perfekt zum excel files schreiben.
leider befürchte ich, dass man damit keine excel files lesen kann.
ich schaus mir mal an und falls doch nehm ich alles wieder zurück 😉
a hui hau
puppet
aloha,*in der excel datei sind daten, die ich lesen will, um damit meine datenbank zu füllen. später ist auch ein excel export (also ein erstellen und beschreiben von excel files) vorgesehen. *
Wenn du über PIA auf eine Excel Datei zugreifen möchtest dann nur wenn davor Office auch installiert wurde. Sonst funktioniert PIA nicht. dann sollte ich wohl die lösung per PIA ersteinmal hinten anstellen. denn ich will dem kunden kein office aufzwingen. noch dazu eine von mir vorgegebene version, da es ja für jedes office ein eigenes PIA gibt. *leider kenne ich nur die wege per COM und PIA mit excel zu kommunizieren.gibt es auch einen weg, der mich unabhängig von ms office macht?
ok. vll sollte ich etwas konkreter werden.
mit PIA meine ich die Primary Interop Assemblies.
mein programm soll daten aus einer excel datei auslesen. die excel datei habe ich bereits auf meinem laptop. jedoch kein microsoft office.
als ich dann den Primary Interop Assemblie für MS Office 2003 installieren wollte, kam die meldung, dass ich zuerst MS Office installieren soll.
muss ich das wirklich oder gibt es nicht noch einen anern weg mit excel zu kommunizieren?
verwendetes Datenbanksystem: Excel
aloha,
gibt es eine möglichkeit ein PIA zu installieren ohne vorher office installiert zu haben?
a hui hau
puppet
aloha,
probier es mal mit einem ListViewItem- statt einem String-Array.
a hui hau
puppet
aloha,
imho ist das hier erstmal ein logisches problem.
wenn du einen preis bei BasisGebäude implementierst, gibst du damit an, dass ALLE gebäude einen preis/preisniveau haben, was bei dir jedoch nicht der fall ist.
wenn ich es richtig verstanden habe, sollte dein modell in etwa so aussehen:
Schmiede <- GebäudeMitPreisNiveau <- BasisGebäude
Privathaus <- Basisgebäute
es gibt also eine abstrakte klasse BasisGebäude mit allen eigenschaften, die ein gebäude hat (also kein preisniveau) und eine abstrakte klasse GebäudeMitPreisNiveau, die von BasisGebäude erbt.
dann kannst du die restlichen gebäude, je nach typ, von den entsprechenden gebäudeklassen erben lassen.
a hui hau
puppet
EDIT:
ich habe einen Codebaustein den ich sehr häufig in Classen wiederverwenden werde. Dafür sind ja interfaces gedacht das sehe ich nicht so. ein interface soll eine definierte schnittstelle zwischen zwei (oder mehreren) klassen darstellen. was du meinst sind abstrakte klassen.
aloha,
zu A) schau dir mal m zu n verknüfungen von tabellen an.
zu B) eine einfache SQL abfrage. über den suchalgorythmus darfst du dir dann selber ein paar gedanken machen.
a hui hau
puppet
aloha,
ps: oder gibt es eine Möglichkeit bei Convert.ToInt32() anzugeben, dass wenn es ein Leer-string ist, dies eine 0 sein soll?
ja, die gibt es. schau dir mal die Convert.ToInt32(String, IFormatProvider) Methode an.
a hui hau
puppet
aloha,
oder bleib doch einfach bei deiner ursprünglichen idee des trimmens.
das ist das beste, wenn die endungen wirklich alle gleich sind.
a hui hau
puppet
aloha,
na dann will ich die diskussion mal nicht neu anfachen. obwohl ich sagen muss, dass mich die argumente nicht überzeugt haben.
aber da der thread eh nicht geclosed wurde, ist es für hier auch egal.
zurück zum eigentlichen thema. das GetType() besser ist finde ich auch.
nur da man ja in der regel die klasse um die methode selbst schreibt wird man auch wissen, ob man ToString() überschrieben hat.
daher müsste ToString() fast immer auch funktionieren.
geht mir jetzt eigentlich nur drum, ob meine denkweise so richtig ist.
das GetType() besser ist, ist unstreitbar.
a hui hau
puppet
aloha,
was habt ihr denn gegen das doppelposten, so lange es in verschiedenen foren ist?
ich finde es sogar gut. denn dadurch wachsen beide foren und mehreren leuten wird dadurch geholfen.
zum problem.
Pimsti wird es wahrscheinlich nicht mehr interessieren aber vll andere. mit this.ToString() bekommt man namespace und klasse ausgegeben.
a hui hau
puppet
ach so. GetType().FullName geht natürlich auch. aber das wurde ja bereits ausführlich im andern forum erklärt 😉
aloha,
@DavidT
müsste
foreach (var i in Maske.Tabs)
{
// Das was ausgeführt werden soll
}
nicht auch schon reichen?
a hui hau
puppet
aloha,
die sicherheitseinstellungen legst du nicht innerhalb des browsers, sondern innerhalb des systems (windows) fest.
schau mal unter systemsteuerung-internetoptionen
seltsam ist nur, dass es mit dem ie funktioniert und unter firefox nicht.
a hui hau
puppet
aloha,
cool. wieder was gelernt.
aber nur mal spaßeshalber könntest du auch mal meine methode ausprobieren. mich würde interessieren, was performanter wäre.
aber programmiertechnisch gesehen ist natürlich die methode von juyjuka klar besser.
a hui hau
puppet
aloha,
fang doch einfach das event ab, wenn ein wert ins data grid geschrieben wird. dann kannst du auf null überprüfen und evtl. durch einen beliebigen wert ersetzen.
a hui hau
puppet
aloha,
@djCalypso
kannst du mal nen link dazu posten? ich will mir das teil auch mal näher anschauen.
thx
a hui hau
puppet
aloha,
sry silentcatcher. wollt niemandem auf den schlips treten. habs wohl falsch interpretiert 😉
hast recht. access is da schon etwas speziell.
@FZelle
ich würde jetzt nicht unbedingt von einer falschen und richtigen herangehensweise sprechen. ich würde es eher mit assembly und höheren programmiersprachen vergleichen.
is doch gut, wenn man es von der pike auf lernt. dann kann man es immerhin auch auf die "altmodische" art und weise.
aber das kann silentcatcher ja eh schon. von daher macht dich ruhig an die parameter 😉
a hui hau
puppi
aloha,
habt ja recht. parameter sind eindeutig die elegantere methode.
bloß so wie ich silentcatcher verstanden habe ist das eh nur ein "micky maus" programm zum üben.
und von daher finde ich es ok, wenn er sich nochn bissel mit sql-strings auseinander setzt, wenn er noch nicht so die ahnung hat.
später solltest du allerdings wirklich auf die parmeter basierende abfrage umsteigen. aber ich denk das kommt dann schon von alleine, wenn du mal deine erfahrungen gemacht hast.
a hui hau
puppi
Aloha,
ersetzt mal die "." durch "/" und denk dran, dass daten in "#" stehen müssen.
im übrigen empfehle ich dir mal die BuildCriteria methode anzuschauen, wenn du eh schon mit access arbeitest.
in der access-hilfe gibts mehr dazu
a hui hau
puppi
Aloha,
ka. ich les meine xml files immer mit datatable.readxml ein.
da hat man so probleme nicht.
vll ist das ja auch was für dich.
a hui hau
puppi
ist die nicht sogar standardmäßig an?
^^
jetzt aber mal ehrlich. hast du gesucht? wenn ja würden mich mal deine suchbegriffe interessieren, die du bei google (oder einer anderen suchengine deiner wahl. man will ja nicht, dass google irgendwann die weltherrschaft an sich reist G) eingegeben hast.
aloha,
wird die seite denn neu geladen, wenn du auf anmelden drückst?
a hui hau
puppi
Aloha,
es ist egal was für einen wert ich bei der deletregel eintrage. es kommt immer die gleiche exception.
davon abgesehen muss ich dir absolut recht geben G
Prinzipiell muss man aber sagen: die Dinger wurden erfunden um inkonsistente Daten zu verhindern. Wenn man das jetzt im Programm von hinten durch die Brust ignoriert, dann nutzt auch die persönliche versicherung des Chefprogrammierers "ich mach ja anschliessend dies und dass damit es wieder passt" nicht wirklich was.
mir geht es in diesem fall auch mehr ums prinzip, dass es zumindest MÖGLICH sein sollte inkonsistente daten zu erzeugen (aus welchem grund auch immer) 😉
a hui hau
Puppi
Aloha alaan,
wieso speicherst du nicht einfach alle angewählten daten in eine liste und überprüfst dann mit contains(), ob das datum schon mal angewählt wurde?
prinzipiell würde ich es aber wie michael machen und gleich zu beginn alle daten laden. jedoch solltest du testen ob die select() methode wirklich für dich geeignet ist. meiner erfahrung nach ist eine simple for-schleife meist DEUTLICH schneller (habe es jedoch nicht ausführlich getestet)
a hui hau
Puppi
Aloha,
gefährlich! Steht auch in dem Link warum.
danke. wusste ich nicht.
leider wird in der faq nicht erklärt wann Environment.CurrentDirectory ein anderes ergebnis als Application.StartupPath liefert (oder ich habs überlesen). nachtrag?
weil wo die dabeien im debug modus liegen is eigentlich egal... hauptsache die liegen richtig wenn du dein programm erstellst.
das sehe ich nicht so. ich jedenfalls arbeite hauptsächlich im debug modus wärend der entwicklung
die idee von puppetmaster find ich jetzt nciht so toll... weil du dann immer wenn du die xml datein änderst sie manuell in den ordnern ändern musst wo du sie rein kopiert hast... und da kann es schon mal vorkommen das man sowas vergisst
du hast mich falsch verstanden. er soll die dateien nicht kopieren, sondern verschieben. editieren kann man sie dann (meistens) in der entwicklungsumgebung direkt oder wenn man die files unbedingt im projektordner haben will, kann man auch eine verknüpfung erstellen
a hui hau
Puppi
Aloha herbivore,
Aber Convert.ToInt32(x.ToString()); wird gerade nicht funktionieren, weil es wieder den Zahlenwert und nicht den Zeichenwert liefert.
ja, das wollte ich in dem moment auch. deswegen "offtopic".
(nur für den fall, das andere leser auf den thread stoßen und eben den zahlenwert haben wollen)
gefühlsmäßig würde ich in diesem Fall jedoch zum cast und nicht zur convert methode greifen. für mich wäre dann aus dem quellcode klarer ersichtlich, was passieren soll. aber vll sind das auch einfach noch überbleibsel aus meiner c zeit 😉
a hui hau
Puppi
verwendetes Datenbanksystem: access mit ADO
Aloha,
ich habe eine tabelle "Commissions" die mit der Tabelle "CommissionsRooms" in beziehung steht.
Jetzt will ich die Daten aus Commissions mit
ds.Tables["Commissions"].Clear();
löschen und bekomme eine fehlermeldung (Unbehandelte Ausnahme: System.Data.InvalidConstraintException: Die Tabelle Commissions kann nicht gelöscht werden, da ForeignKeyConstraint CommissionsCommissionsRooms Einschränkungen erzwingt und sich untergeordnete Zeilen in CommissionsRooms befinden.)
warum klappt das nicht trotz:
ds.Relations[0].ChildKeyConstraint.UpdateRule = Rule.None;
ds.Relations[0].ChildKeyConstraint.DeleteRule = Rule.None;
(die daten sollen natürlich anschließend wieder geupdatet werden um dateninkonsistenz zu verhindern)
a hui hau
Puppi
Aloha,
kurz offtopic
{
int.Parse
int.TryParse
stimmt
die Methode Convert.ToInt32(char value)
stimmt auch!
Wo liegt der Unterschied?
http://www.dotnetspider.com/forum/ViewForum.aspx?ForumId=77428
das nicht funktionieren. Da er a) einen char hat und keinen String
Convert.ToInt32(x.ToString());
}
Wenn du wirklich den ASCII-Code haben willst. Musst erst einen String aus dem Zeichen machen und dann Encoding.GetBytes verwenden.
stimmt. da jedoch ascii und unicode in den positionen 32 bis 126 übereinstimmen (und das sind so ziemlich alle zeichen, die du mit der tastatur eingeben kannst) solltest du dir wirklich überlegen, ob für deine zwecke nicht ein einfacher cast
op1 = (int)(char)x;
langt
a hui hau
Puppi
Aloha,
leg die xml dokumente doch einfach im debug ordner ab und greif dann mit "Environment.CurrentDirectory" drauf zu.
wenn du sie unbedingt im projektordner haben willst, kannst du ja eine verknüpfung erstellen.
a hui hau
Puppi
Aloha,
schau mal bei den optionen unter Text-Editor -> C# -> Formatierung -> Neue Zeile
(habe im moment leider nur das VS05 zur kontrolle zur verfügung.)
a hui hau
Basti