Laden...

Forenbeiträge von ravel Ingesamt 169 Beiträge

06.04.2015 - 21:49 Uhr

Hi Abt,

vielen Dank für Deine schnelle Antwort. 👍

ich habe mir grade ein einfaches Beispiel zu Azure WebJob mit Console Apps hier http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx angesehen. Dort steht "They (WebJobs) are built into Azure Websites and run in the same VM as your Web Sites."

So wie ich das verstehe, habe ich bei Azure wieder eine VM und die Anwedung skaliert auch nur innerhalb dieser VM.
Kann ich irgendwie (automatisch) die Grenzen der VM verlassen und dadurch hoch- und runter-skalieren?

Ich hatte es mir ganz naiv so vorgestellt, dass ich die Jobs einfach an Azure übergebe und dort wird entschieden, wo der Job läuft.

Besten Dank

06.04.2015 - 20:50 Uhr

Hi,

ich nutze einen Web Crawler, der momentan auf einem virtuellen Server läuft. Der Web Crawler läuft innerhalb eines Windows-Dienstes, angeschlossen per WCF an eine ASP.NET-Webseite für das Starten und Stoppen der crawl jobs.

Pro crawl job wird momentan ein Backgroundworker innerhalb des Dienstes gestartet, der den crawl job ausführt und die Ergebnisse in eine MongoDB-Datenbank schreibt.

Aus Gründen der Skalierbarkeit, möchte ich gerne nach Azure umziehen.

Ich habe mir gedacht, dass jeder neue crawl job in einer eigenen (WCF-)Worker Role läuft.
Die Worker Role schreibt auch gleich die Ergebnisse des Crawl-Vorgangs in die Datenbank.

Die ASP.NET-Webseite hat einen Dienstverweis auf die WCF-Worker-Role.

Wie starte ich aber für jeden crawl job eine eigene Worker Role?

Vielen Dank

11.04.2013 - 20:36 Uhr

Ich danke euch. Werde es dann wohl mittels WCF lösen.

10.04.2013 - 21:33 Uhr

Hi,

ich habe eine .net-Anwendung (einen Web-Crawler) auf meinem Server, die längere Zeit läuft. Die Anwendung möchte ich gerne über eine ASP.NET-Seite "fernsteuern", sprich starten, anhalten und Status abfragen.

Ich könnte die .net-Anwendung direkt von ASP.NET referenzieren. Ich sehe dabei aber ein Problem: Nachdem ich die ASP.NET-Seite schließe, läuft die Session ab und die .net-Anwendung wird beendet. Der Web-Crawler soll aber weiterlaufen, auch wenn keiner auf dem Server angemeldet ist.
Damit das Ganze nicht passiert, dachte ich mir, ich setze einen Windows-Dienst ein, der Befehle von der ASP.NET-Seite entgegen nimmt und die .net-Anwendung startet und am Leben hält.
Ist das der richtige Ansatz?
Wenn ja, wie greife ich von meiner ASP.NET-Seite auf den Dienst am besten zu?

Per WCF? (Host WCF in a Windows Service Using TCP)

Vielen Dank!

12.03.2013 - 00:19 Uhr

Hi,

für ein neues Projekt bräuchte ich einen kleinen Denkanstoß.

Ich habe eine Datenbank in der die Benutzer meiner Webseite ihre Hausadressen hinterlegen. Andere Besucher der Webseite können jetzt ihre Adresse eingeben und ich möchte die nächstgelegensten Adressen aus meiner Datenbank finden.
Ein Besucher der Webseite gibt also seine Hausadresse ein und meine Webseite soll dann (sortiert nach Entfernung) die nächstgelegensten eingetragenen Adressen aus der Datenbank ausgeben.

Ich bin mir nur noch nicht sicher, ob ich die Luftlinie oder die "richtige" (Benutzung von Straßen) Entfernung benötige. Es geht darum, dass Leute von anderen Personen etwas abholen anstatt es sich per Post zuschicken zu lassen.

Es gibt ja Karten-APIs (bing maps, google maps) aber diese sind auf X Abfragen pro Tag begrenzt und kosten dann etwas.
Wie mache ich es am geschicktesten so wenig API-Aufrufe wie möglich zu verbrauchen?

Ein Ansatz wäre ja pro eingegebener Adresse eine Entfernungsmessung zu allen eingetragenen Adresse zu machen und dann sortiert auszugeben. --> Viele API-Aufrufe und exakte Entfernung.

Ein anderer Ansatz wäre schon beim Anlegen der Adressen den Längen- und Breitengrad per API zu ermitteln und mit in der Datenbank abzuspeichern. Dann kann man wenigstens die Luftlinie berechnen. --> Wenig API-Aufrufe aber ungenau.

Wie macht man es richtig?

01.06.2012 - 19:31 Uhr

Hi,

ich kenne nur "soundex". Hier gibts ne .net-Implementierung davon:
A SoundEx implementation in .NET

ravel

25.05.2012 - 23:40 Uhr

Ich habe herausgefunden, was schief läuft:
Visual Studio kopiert die Datenbank ins bin/Debug-Verzeichnis. Meine Anwendung schreibt dann in die mdf-Datei im bin/Debug-Verzeichnis. Die Verbindung im Datenbank-Explorer verweist aber auf die mdf-Datei im Projektordner.

Bleibt mir jetzt nichts anderes über als die Verbinungsdaten im Datenbank-Explorer auf mein bin/Debug-Verzeichnis zeigen zu lassen, damit ich die Daten sehe?

25.05.2012 - 22:09 Uhr

verwendetes Datenbanksystem: MSSQL-Server 2008 R2 Express

Hi,

ich habe eine (dienstbasierte) Datenbank (mdf-Datei) zu meinem Projekt hinzugefügt und ein DataSet (xsd-Datei).
Meine Datenbank enthält eine Tabelle. Das DataSet enthält einen TableAdapter mit einem InsertQuery-Befehl.

Ich möchte jetzt die Datenbank mit dem InsertQuery-Befehl füllen. Der Befehl wirft keine Exception, trotzdem landen keine Daten in der Datenbank.


            dsDataTableAdapters.itemsTableAdapter taItems = new dsDataTableAdapters.itemsTableAdapter();
            taItems.InsertQuery("hallo", "welt");

Das Ganze habe ich in ASP.NET schon gefühlte hundert Mal gemacht und es hat immer geklappt. Leider komme ich bei dem C#-Projekt nicht weiter.

Anbei das Beispielprojekt.

Ich verstehe nicht, was ich falsch mache. Kann mir jemand auf die Sprünge helfen?

13.03.2012 - 11:44 Uhr

Hi,

erstmal vielen Dank für deine Hilfe! Ich würde aber ganz gerne ohne zusätzliche dritte Tabelle auskommen.

Ich hab jetzt selbst mal was gebastelt, was der Sache schon sehr nahe kommt. Leider bekomme ich bei dem Ausdruck immer noch einen Fehler.


  SELECT TOP (5) maincontent.id, maincontent.text
                        FROM maincontent INNER JOIN keywords ON maincontent.id = keywords.fk_maincontent_id
                        WHERE keyword in ('haus', 'auto', 'boot')
                        GROUP BY maincontent.id, maincontent.text
                        ORDER BY (select COUNT(keyword) as num, keyword from keywords
                        WHERE keyword in ('haus', 'auto', 'boot')
                        group by keyword
                        order by num desc);

Der Fehler lautet: > Fehlermeldung:

Die ORDER BY-Klausel ist in Sichten, Inlinefunktionen, abgeleiteten Tabellen, Unterabfragen und allgemeinen Tabellenausdrücken nur dann gültig, wenn auch TOP oder FROM XML angegeben wird.

Wenn ich das letzte order-by weglasse, kommt ein anderer Fehler:> Fehlermeldung:

Nur ein einziger Ausdruck kann in der Auswahlliste angegeben werden, wenn die Unterabfrage nicht mit EXISTS eingeleitet wird.

Ich bräuchte die Sache aber natürlich sortiert.

12.03.2012 - 18:53 Uhr

Hi,

das Problem ist, dass ich als Parameter (@keywords) eine kommagetrennte Liste mit keywords übergeben möchte.

Dein Beispiel (und meines auch) funktioniert nur mit einem Keyword. Sobald ich "stichwort1,stichwort2" übergebe, wird nichts mehr zurückgegeben, obwohl die Keywords den Texten zugeordnet waren.


SELECT        TOP (5) maincontent.id, maincontent.approved, maincontent.title, maincontent.description, maincontent.text, maincontent.date_added, 
                         maincontent.fk_category_id
FROM            maincontent INNER JOIN
                         keywords ON maincontent.id = keywords.fk_maincontent_id
WHERE        (keywords.keyword IN (@keyword))

EDIT: Wenn es die Sache einfacher macht, würde ich auch auf die Untertabelle "keywords" verzichten und die Keywords kommagetrennt in einer Spalte von maincontent abspeichern. Ich glaube aber, dadruch wirds noch komplizierter.

Mein Vorhaben ist ja immer noch, die 5 "ähnlichsten" Texte zurückzuliefern.

12.03.2012 - 11:04 Uhr

Vielleicht wird es so etwas klarer, wie mein Aufbau ist:
Im Frontend meiner Anwendung kann man einen Text eintippen (landet in der Tabelle maincontent) und zu dem Text keywords (landet in Tabelle keywords).
maincontent und keywords sind mit einer Fremdschlüsselbeziehung miteinandern verknüpft.

Ich möchte meinen Text außenvor lassen. Es geht mir nur um die Keywords.
Es sollen die 5 ähnlichsten Texte gefunden werden. Ähnlich heißt bei mir, es sollen so viele Keywords wie möglich übereinstimmen. Das ganze sortiert nach Anzahl der übereinstimmenden Keywords.

12.03.2012 - 09:51 Uhr

verwendetes Datenbanksystem: MSSQL Server 2008R2 Express

Hi,

ich habe zwei Tabellen maincontent und keywords. Keywords hat eine Fremdschlüsselbeziehung zu maincontent.

Hintergrund: Ich speichere Texte und dazu Keywords. Ich möchte nun anhand der eingegebenen Keywords ähnliche Texte zurückgeben lassen. Ähnlich = enthält so viele gleiche Keywords wie möglich.

Mein erster SQL-Versuch war folgender:


select top(5) * from maincontent left join keywords on maincontent.id = keywords.fk_keyword_id where keywords.id in (@keywords)

Das das nicht richtig funktioniert, habe ich selbst gemerkt. Da ja nicht die Trefferanzahl der Keywords berücksichtigt wird. Es wird nur geguckt, ob alle Keywords darin vorkommen.

Kann mir jemand bei dem SQL-Befehl auf die Sprünge helfen?

Vielen Dank!

08.03.2012 - 14:10 Uhr

Hi,

ich habe folgende Quelle genutzt um suchmaschinenfreundliche URLs zu erstellen mittels URL-Routing.
URL Routing with ASP.NET 4 Web Forms

Page.GetRoutUrl gibt einem ja anhand von Parametern eine suchmaschinenfreundliche URL zurück. Die Sache ist nur die: Wenn der Parameter Leerzeichen enthält, wird daraus richtigerweise ein "%20" gemacht, damit die Browser damit auch was anfangen können. z.B. seite.de/rotes%20Auto/

Kann ich die URLs aus SEO-Sicht so lassen oder sollte ich selbst noch handanlegen und z.B. Leerzeichen, Sondernzeichen und Umlaute ersetzen, damit die URL "lesbarer" wird? z.B. seite.de/rotes-Auto/ (Leerzeichen durch Bindestrich ersetzt)

Was gefällt Google und Co und dem Benutzer lieber?

In Firefox wird die URL mit Leerzeichen angezeigt in der Adressleiste. In IE9 und Chrome wird der %20-Platzhalter verwendet.

04.03.2012 - 19:22 Uhr

Ja, ich hätte sowas aber gerne für alle großen Hersteller 😃

04.03.2012 - 18:59 Uhr

Hi,

auf http://support.asus.com.tw/cpusupport/cpusupport.aspx?SLanguage=de-de kann man z.B. eine CPU eingeben und sehen, welche ASUS-Boards dazu passen.

Wäre schade, wenn es nicht so eine Liste geben würde. So eine Liste (automatisiert) zu erstellen wäre schon ein Projekt wert. Da hätten bestimmt einige Leute bedarf daran.

04.03.2012 - 18:46 Uhr

Hi,

meine Frage steht im Betreff. Es gibt Computer-Shops mit PC-Konfiguratoren, die wissen, dass eine Intel-CPU nicht auf ein AMD-Mainboard passt.

Woher bekommen die Shopbetreiber diese Infos?
Für ein Projekt suche ich nämlich eine solche aktuell gehaltene Kompatibilitätsliste.

Danke und Gruß

15.02.2012 - 12:32 Uhr

Hi,

danke für deine Antwort.
Blöde Frage aber, wie bekomme ich die DB im Management-Studio zu gesicht? Ich sehe dort nur eine master.mdf und noch weitere Datenbanken (sitze grade nicht an meinem Entwicklungsrechner) aber nicht meine offline geschaltete Datenbank.

EDIT: Um nochmal alles klar zu stellen: Ich habe die Datei nicht übers Management-Studio angelegt, Visual Studio hat die mdf-Datei selbst angelegt. Daher hatte ich nie Zugriff auf die Datei per Management-Studio und habe es jetzt auch nicht.

14.02.2012 - 21:06 Uhr

verwendetes Datenbanksystem: MSSQL 2008 R2 Express

Hi,

ich habe folgendes innerhalb meiner ASP.NET-Webseite ausgeführt und damit meine Datenbank(datei) offline gesetzt:
"ALTER DATABASE [MEINE_DATENBANK] SET OFFLINE WITH ROLLBACK IMMEDIATE"

Jetzt kann ich mich nicht mehr zur Datenbank verbinden. Ich habe versucht die Datenbank wieder online zu bringen, leider ohne Erfolg. Ich weiß ehrlich gesagt nicht, wo ich den Befehl "ALTER DATABASE [MEINE_DATENBANK] SET ONLINE" eingeben soll. Die ASP.NET-Seite gibt beim Datenbankzugriff jetzt diese Meldung:

Die Standarddatenbank des Benutzers kann nicht geöffnet werden. Fehler bei der Anmeldung.
Fehler bei der Anmeldung für den Benutzer 'Mein_Benutzer'.

Ähnliche Meldung gibt das SQL Server Management Studio, wenn ich die Datenbankdatei (MDF) attachen will.

Wie bekomme ich meine Datenbank wieder in die Gänge?

Vielen Dank im Voraus

24.01.2012 - 13:58 Uhr

Ich gehe davon aus, dass die Seite noch nicht fertig geladen ist.
Das Webbrowser-Control ein hat event, das Navigate_Complete oder so ähnlich heißt. Lass in dem Event auf den Button klicken.

10.01.2012 - 10:28 Uhr

Hallo ihr beiden.
Danke für die Anworten. Das leuchtet ein.

10.01.2012 - 01:17 Uhr

verwendetes Datenbanksystem: MS SQL 2008 R2 Express

Hi,

ich versuche grade vergeblich ein foreign key constraint zu erstellen, bekomme aber immer eine Fehlermeldung (siehe Screenshot).

Beide Spalten haben den gleichen Datentyp und in beiden Tabellen haben die benutzten Spalten die gleichen Werte. Also in fk_user_id stehen die gleichen Werte wie in ProviderUserKey.

Ist es ein Problem, dass die Tabelle bereits Daten enthalten? Ich kann die Tabellen schlecht leeren um das auszuprobieren, weil auf der yaf_User-Tabelle wiederum constraints sitzen die mir das Löschen verweigern.

Was mache ich falsch?

07.01.2012 - 15:51 Uhr

Alles klar. Besten Dank erstmal an euch beide!

07.01.2012 - 13:44 Uhr

Ich hätte vielleicht dazu sagen sollen, dass ich sehr wohl weiß wie groß meine Bilder (Thumbnails sind alle gleich groß) sind. Außerdem hat meine Seite eine fixe Breite. Serverseitig kann ich also schon ausrechnen, wieviele Bilder nebeneinander passen und wann eine neue Zeile begonnen werden muss.

Oder versteh ich da etwas falsch?

07.01.2012 - 12:57 Uhr

Hi,

ich möchte eine art Gallerie realisieren mit einfachsten Mitteln.
Ich habe Bilder-Informationen in einer Datenbank und die zugehörigen Bilder auf der Festplatte.

Ich möchte Bilder nebeneinander bzw. wenn eine Zeile voll ist (meine Webseite hat eine fixe Breite) untereinander anzeigen.

Meine Frage ist, welches Control eignet sich zum Anzeigen der Bilder am Besten? Ein Gridview kann ja standardmäßig nur Einträge untereinander anzeigen oder?
Wie wäre es mit einem FormView?
Oder sollte ich per Placeholder die Controls selber dynamisch auf der Seite erzeugen? (Ich bräuchte eigentlich nur ein Image und ein Label pro Bilder-Datensatz).

Vielen Dank im Voraus

19.01.2011 - 23:56 Uhr

Hi,

ich möchte gerne verschiedene Funktionen hintereinander ausführen. Dazwischen liegen verschiedene Wartezeiten. Nach einem Durchlauf sollen die Funktionen erneut aufgerufen werden, usw. bis der User "Stop" oder "Pause" drückt. Ich habe eine Windows-Forms-Anwendung.

Zuerst habe ich einfach mittels Thread.Sleep zwischen den Funktionen gewartet. Das ist leider unvorteilhaft, da dadurch die Anwendung eingefroren wird.

Ich habe mir gedacht, die beste Lösung, und immer hier im Forum empfohlen, sei ein Timer. Jedoch wird dadurch der Programmablauf sehr unübersichtlich, was ich mit folgedem Code verdeutlichen will:

 private void tmrDoWork_Tick(object sender, EventArgs e)
        {
			//timer stoppen, damit er sich nicht "überschlägt"
            tmrDoWork.Stop();

			//pause-funktion
            if (currWorkState == WorkState.Pause)
            {
                tmrWork.Interval = 100;
                tmrWork.Start();
                return;
            }

			if (currWorkState == WorkState.Method1)
			{
				Method1();
				currWorkState = WorkState.Method2;
				tmrWork.Interval = 100;
                tmrWork.Start();
                return;
			}

			if (currWorkState == WorkState.Method2)
			{
				//solange bedingung nicht erfüllt ist, 2 sekunden warten und erneut prüfen
                if (!Bedingung())
                {
                    tmrWork.Interval = 2000;
                    tmrWork.Start();
                    return;
                }
                else
                {
                    currWorkState = WorkState.Method3;
                    tmrWork.Interval = 10000;
                    tmrWork.Start();
                    return;
                }
			}
			
			if (currWorkState == WorkState.Method3)
			{
				Method3();
				tmrWork.Interval = 1;
                tmrWork.Start();
                return;
			}			
            
}

Das Ganze mit mitteln wie Thread.Sleep sieht viel übersichtlicher aus und ist leichter zu verstehen:


private void DoWork()
{
	while(!bStop)
	{	
		while(bPause)
		{
			Thread.Sleep(200);
		}
		
		Method1();
		Thread.Sleep(100);
		
		while(!Bedingung)
		{
			Thread.Sleep(2000);			
		}
		
		Method2();
		Thread.Sleep(10000);
		Method3();
	}
}


Wie macht man es "richtig", damit sich der Programmcode besser lesen lässt? Ist der Timer die richtige Wahl oder sind andere Instrumente besser geeignet? BackgroundWorker, Threads...

Danke im Voraus!

28.09.2010 - 17:14 Uhr

Ein Application.DoEvents() nach Thread.Sleep(x) sollte helfen.

01.07.2010 - 23:04 Uhr

Hallo MarsStein,

danke für die schnelle Antwort.

Der Linktext sowie der Link ändert sich immer. Es soll im Prinzip ein Linktausch werden bei dem die User ein Script auf Ihre Website einbauen. Es soll dann ermittelt werden wie oft der Link angezeigt und angeklickt wurde. Letzteres ist kein Problem nur hänge ich immer noch dabei fest, Werte zurück an die externe Seite zu übermitteln, trotz Response.ContentType = "text/javascript"; wird immer nur eine leere Seite angezeigt.

Brauch ich nun wirklich einen eigenen HttpHandler? Ich verstehe nicht ganz, dass mein Beispiel nicht klappt. Die Page_Load-Funktion wird ja korrekt aufgerufen aber der Response.Write-Code landet nicht auf der externen Seite.
Sorry, wenn ich mich doof anstelle.

Gruß
ravel

01.07.2010 - 21:58 Uhr

Hi,

ich versuche mich grade daran herauszufinden, wie oft ein Link auf einer externen Seite von Besucher "gesehen" wurde. Leider bisher ohne Erfolg.

Ich gehe dabei so vor:

Ich habe ein Javascript auf der externen Seite, dass als Script-Source meine aspx-Seite enthält. Beim Aufruf des Scriptes wird auch tatsächlich das Page_Load-Event meiner aspx-Seite aufgerufen.


<html><script language="JavaScript" src="http://localhost:49391/Default.aspx?id=123"></script></html>

Nun möchte ich aber gerne noch von meiner aspx-Seite den Linktext an die externe Seite geben. Ich habe also aus der Default.aspx alles entfernt und nur im Page_Load-Event ein


 Response.Write("Hallo " + Request.QueryString["id"]);

eingefügt.

Wenn ich jetzt die externe Seite aufrufe, erwarte ich eigentlich, dass der Inhalt "Hallo 123" ausgegeben wird. Stattdessen bekomme ich eine weiße Seite.

Wo ist mein Fehler?

Danke und Gruß
ravel

08.01.2010 - 20:29 Uhr

Hast Du mal versucht statt der CultureInfo null bzw. 0 einzugeben?

Leider hilft das nicht, es wird immer noch alles auf englisch ausgesprochen. Auf meinem Windows 2003-Server (englisch) wundert mich das ja nicht mal aber auf meinem deutschen Windows 7 wundert mich das schon.

Noch andere Ratschläge?

06.01.2010 - 22:23 Uhr

Hi,

ich habe ein deutsches Windows 7 auf denen auch deutsche Stimmen installiert sein müssten. Leider bekomme ich es mit folgendem Code nicht hin, dass eine deutsche Stimme meinen Text vorliest. Es wird immer eine Englische Stimme gewählt. Was mache ich falsch?


SpeechSynthesizer ss = new SpeechSynthesizer();
ss.SelectVoiceByHints(VoiceGender.Male, VoiceAge.NotSet, 0, new System.Globalization.CultureInfo("de-DE"));

Danke und Gruß,
ravel

27.12.2009 - 21:26 Uhr

Hi,

ich teste gerade das URL-Rewriting-Modul von http://www.urlrewriting.net/116/de/home.html

Es klappt auch bisher ganz gut mit einer Ausnahme: Wenn die URL Zeichen wie "|" in enthält (mit der URL mache ich vorher Server.URLEncode()) bekomme ich immer einen Fehler, dass ungültige Zeichen im String enthalten sind.

Hier meine Rewrite-Regel:


<add name="Rewrite" virtualUrl="^~/(.*).htm" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Default.aspx?s=$1" ignoreCase="true"/>      

Wie muss ich die Parameter anpassen, damit z.B. "|" durch einen nicht-illegales Zeichen ersetzt wird?

EDIT: Noch ein ganz anderes Problemchen. Wenn ich virtualUrl="^~/ordner/(.*).htm" festlege und und die URLs auch so generiere, klappt zwar das URL-Rewriting aber wenn ich dann auf Links klicken will, wird davon ausgegangen, dass die Seite sich grade in dem Verzeichnis "ordner" befindet und die links laufen alle ins leere. Muss ich jetzt immer absolute Links setzen oder gibts dafür auch ne andere Lösung?

Danke und Gruß,
ravel

26.12.2009 - 12:34 Uhr

ok, habs selbst rausbekommen.
"[" muss durch "[[]" ersetzt werden.

26.12.2009 - 12:24 Uhr

verwendetes Datenbanksystem: MSSQL Express 2008 SP1

Hi,

ich habe ein ganz einfaches select-statement:


SELECT        id, de, en
FROM            x_deen
WHERE        (de LIKE @searchtext + '%') OR
                         (en LIKE @searchtext + '%')

Wenn im @searchtext nun aber eine eckige Klammer [ ] vorkommt, werden keine Zeilen zurückgeliefert, obwohl es aber Ergebnisse gibt im Datenbestand.

Woran liegt das? Muss ich die eckigen Klammern vor dem abschicken des Queries irgendwie escapen? Wenn ja, wie?

Danke und Gruß,
ravel

26.12.2009 - 12:10 Uhr

Hi,

mittels SpeechSynthesizer kann man ja Text nach Sprache umwandeln und beispielsweise als wav-Datei auf die Festplatte schreiben und im Browser ausgeben. Das klappt auch ganz gut mithilfe eines Controls von http://www.vbdotnetheaven.com/UploadFile/scottlysle/PlaySoundsInASPX09032006083212AM/PlaySoundsInASPX.aspx

Wie kann ich mir aber den Umweg über die temporäre Dateiausgabe auf die Festplatte sparen und z.B. den Stream direkt in die Website bringen, so dass der Sound ausgegeben wird?

Danke und Gruß,
ravel

25.12.2009 - 20:11 Uhr

Hallo winSharp93,

stimmt. Es haben sich Stimmen hinzuinstalliert. Besten Dank, Mike hört sich auch schon besser an als die Standardstimme. Trotzdem ist die Sprachquali auf Windows 7 wesentlich besser als auf Windows 2003. Gibt es eventuell noch mehr Stimmen, die man installieren kann? Am besten wären ja die Stimmen von Windows 7.

Danke und Gruß,
ravel

25.12.2009 - 12:10 Uhr

Hi,

ich lasse mir auf meinem Windows 2003-Server mittels SpeechSynthesizer Texte aussprechen. Auf meinem Arbeitsrechner mit Windows 7 hört sich die Sprachausgabe aber wesentllich besser an, als auf Windows 2003.

Kann man irgendwie Stimmen nachinstallieren? Ich hab schon Microsoft SAPI 5.1 auf beiden Rechner installiert, ohne dass ich einen Unterschied gemerkt habe.

Besten Gruß,
ravel

03.12.2009 - 18:41 Uhr

hi,

jo, das problem kannte ich schon. ich dachte, mit dem neuem asyncfileupload haben die das problem behoben.

ich hab das updatepanel jetzt einfach rausgeworfen. danke für deine hilfe.

02.12.2009 - 20:17 Uhr

Hi,

ich habe ein Update-Panel in dem ein Wizard-Control liegt. In Step 2 liegt ein AsyncFileUpload-Control. Es gibt ein Event namens UploadComplete.

Folgendes Problem gibt es nun: Wenn der StartStep Step 2 ist (also der Step mit dem AsyncFileUpload-Control) und wird das UploadComplete-Event gefeuert, wie es auch sein sollte. Wenn der StartStep aber Step 1 ist und man erst auf "Weiter" drücken muss um zum Fileupload-Control zu gelangen, wird das Event nicht gefeuert, wenn man das Control benutzt um eine Datei hochzuladen.

Hier ist eine ganz kleine Beispielanwendung, die nur die 3 Controls enthält:

http://rapidshare.de/files/48776556/TEST.zip.html

Es wäre echt super, wenn mir da jemand helfen könnte. Ich fummel schon seit Stunden an dem Problem rum.

Edit: Ohne UpdatePanel läuft das ganze korrekt. Mit UpdatePanel aber nicht. Ich möchte das UpdatePanel aber trotzdem gern benutzen.

Gruß
ravel

01.12.2009 - 19:53 Uhr

Hallo Peter,

danke für deine Antwort.
Meinst du den Abschnitt "Unterschiedliches Verhalten der Webserver im Bezug auf HttpHandler.."?

Ich habe jetzt laut des PDFs von urlrewriting.net eine Wildcard Application Map eingerichtet. Trotzdem bekomme ich immer noch ein 404, wenn ich www.meinedomain.de/books aufrufe. Es wird nicht in die Page_Load meiner Main.aspx gesprungen.

01.12.2009 - 18:47 Uhr

Hi,

laut http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx ist es ja möglich mittels Request.PathInfo.Substring(1) aus der Adresse http://www.store.com/products.aspx/Books den Parameter "Books" abzugreifen.

Das ganze klappt auch wunderbar. Ich möchte nun aber das products.aspx weglassen, also http://www.store.com/Books in den Browser eintippen und trotzdem erfahren, dass dort "Books" übergeben wurde. Ich bekomme aber ein error 404, wenn ich www.meinedomain.de/Books eintippe. Es wird gar nicht auf die Page_Load-Methode von Main.aspx (meine Hauptseite) zugegriffen.

28.11.2009 - 21:02 Uhr

das hab ich mir auch schon fast gedacht. im VWD gibts auch die möglichkeit skripte zu erstellen. aber diese skripte erstellen immer nur create-anweisungen und keine alter-table befehle.

welche möglichkeit gibts da noch? bzw was ist der offizielle weg?

28.11.2009 - 14:35 Uhr

Hi,

ich habe eine Webseite mit Datenbankanbindung. Die ASPNETDB.mdf liegt natürlich schon auf dem Server. Jetzt möchte ich Änderungen an der Datenbank vornehmen. Wenn ich beim hochladen wähle, dass die mdf-Datei mit hochgeladen werden soll, wird die alte ja überschrieben und alle angemeldeten User sind wieder verschwunden...

Wie geht ihr mit der Problematik um? mdf-Datei vom Server holen, Änderungen vornehmen und wieder hochladen?

14.11.2009 - 21:12 Uhr

Kannst du der BehaviorID vielleicht auch die UniqueID der jeweiligen Controls zuweisen? Probiers mal aus.

die frage ist, wo soll ich sie zuweisen, in welchem event?

danke und gruß

14.11.2009 - 19:29 Uhr

Hi,

ich benutze ein UserControl namens MyMessageBox (http://www.jankoatwarpspeed.com/post/2008/05/28/Create-MessageBox-user-control-using-ASPNET-and-CSS.aspx) auf meinen Webseiten. Zusätzlich habe ich das UserControl auf meine MasterPage gezogen.

Jetzt bekomme ich aber auf den Seiten auf denen nun 2 MyMessageBox-Controls gerendert werden sollen einen Fehler, dass das BehaviourId "mpeMessage" (ein ModalPopupExtender) nicht eindeutig sei.

Hier ein Code-Schnipsel:


<cc1:ModalPopupExtender ID="ModalPopupExtenderMessage" runat="server" TargetControlID="LinkButtonTargetControl"
    PopupControlID="MessageBox" BehaviorID="mpeMessage" CancelControlID="CloseButton"
    BackgroundCssClass="messagemodalbackground" />

Wie kriege ich den Fehler gelöst? Das Behavior-Id irgendwie eindeutig machen mittels GUID? Wenn ja, wie weise ich das BehaviorId vor der Erstellung des UserControls zu?
Nur eine Instanz der MyMessageBox in der MasterPage und von den Content-Seiten auf die MasterPage-MyMessageBox zugreifen? Geht das überhaupt?

Danke!

11.11.2009 - 22:48 Uhr

Hi,

ich benutze ein Menü-Control zur Navigation. Die Einträge werden aus einer web.sitemap-Datei geholt. Ich habe eine Resources.resx und Resources.en.resx-Datei im App_GlobalResources-Ordner untergebracht in denen u.A. der Schlüssel "bannertemplates" steht.

So weise ich die Titel aus der Resourcen-Datei zu:


        <siteMapNode
            url="~/member/ManageTemplates.aspx"
            title="$resources:Resources,bannertemplates"
            description="test" />

In der web.sitemap-Datei steht auch enableLocalization="true".

Das Ganze funktioniert beim Debuggen der Seite wunderbar. Wenn ich aber die Seite auf meinen Server hochlade und öffne, bekomme ich den Fehler "The resource object with classname 'Resources' and key 'bannertemplates' was not found." Der Schlüssel ist aber da!

Gibts noch andere Möglichkeiten die sitemap-Datei zu lokalisieren?

10.11.2009 - 20:57 Uhr

verwendetes Datenbanksystem: MSSQL 2008 express

Hi,

ich habe eine Datenbank als mdf im visual web developer. Die mdf-Datei hat eine Größe von 107mb. Ich habe dann aus meinen 11.000 rows an dummy-daten 10.000 rows gelöscht, trotzdem ist die datei nicht kleiner geworden. wie kann ich es anstellen, dass datei ge-shrinked bzw. verkleinert wird? oder geschieht das automatisch? die express-version hat ja eine größenbeschränkung von 4GB.

danke und gruß

27.08.2009 - 18:44 Uhr

Jedes Kästchen besitzt einen komplett umlaufenden Rahmen ( border-width: 1px 1px 1px 1px), stoßen 2 davon aneinander erscheint der Rahmen doppelt. Ich würde der kompletten Navigationsbox einen Außenrahmen ohne bottom-Rahmen geben, und dafür dem dynamicitem nur einen bottom-Rahmen zuweisen.

edit: also zur Verdeutlichung

box außenrum: border-width: 1px 1px 1px 0px;
dynamicitem: border-width: 0px 0px 0px 1px;

Die fehlende Bottom-Border des Außenrahmens wird dann durch das unterste dynamicitem gezeichnet.

danke, das hat geholfen

26.08.2009 - 23:13 Uhr

Hi,

ich habe ein asp.net-menü welches einen rahmen haben soll. den rahmen gebe ich über css an. leider sind die rahmenlinien zwischen zwei einträgen doppelt (screenshot).

Das ist das zugehörige CSS:


#mainnav .dynamicItem
{
    color: #000000;
    background-color: #FAFAFA;
    height: 20px;
    width: 120px;
    border-style: solid;
    border-width: 1px 1px 1px 1px;
    border-color: #666666;
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}

Wie kann ich es vermeiden, dass die Linien zwischen den Einträgen doppelt eingefügt werden?