Laden...

Forenbeiträge von schuppsl Ingesamt 789 Beiträge

11.07.2013 - 10:07 Uhr

Wie kommst du darauf, habe leider nichts gefunden?

Edit:
Ich habe gerade nachgesehen, es gibt tatsächlich einen Datatype INVERVAL der so angegeben ist:

INTERVAL DAY(%d) TO FRACTION(%d)819), null

Kannes daran liegen? Dann kann ich ja nichts dran ändern....
Wäre eine Alternative die Informix Datenbank per C# direkt anzusprechen, also ohne ODBC?

11.07.2013 - 08:23 Uhr

Nur wie ist die Frage?

10.07.2013 - 16:04 Uhr

Hey. Das kann ja eigentlich nicht sein, denn mit dem anderen Programm geht es ja einwandfrei.

10.07.2013 - 15:03 Uhr

verwendetes Datenbanksystem: Informix über ODBC

Sorry Leute, wenn ich schon wieder nen Thread aufmache, aber die Kollegen haben keine Lösung und Google leider auch nicht!

Also ich habe die Infoxmix Datenbankverbindung über eine eingerichtete ODBC (DSN) im Visual Studio eingerichtet.
Rechts im Server-Explorer erscheinen auch alle Tabellen und mit der rechten Maustaste->Daten abrufen kann ich prima auf die meisten Tabellen zugreifen bzw. mir diese ansehen.
Bei einigen bestimmten und natürlich bei der die ich dringend benötige, geht das nicht.
Es kommt die Fehlermeldung:> Fehlermeldung:

Unbekannter SQL-Typ-110 Siehe Anhang.

Mit dem externen Databasetool Database.NET und mit dem Hauptprogramm funktioniert alles perfekt, ich kann alle Daten abrufen, nur mit Visual Studio geht es nicht.
Kann mir wer sagen, was diese Fehlermeldung auslöst?

Vielen Dank!

10.07.2013 - 14:44 Uhr

Sehe ich eigentlich keinen Grund dazu, denn GetString() wandelt es ja um. Und vor der Abfrage isDBNull geht es ja auch....

10.07.2013 - 13:23 Uhr

verwendetes Datenbanksystem: Informix über ODBC

Fehlermeldung:

Fehlermeldung:
Das Objekt des Typs "System.Int32" kann nicht in Typ "System.String" umgewandelt werden.

gegeben sei folgender Code:

 string connectionString = Properties.Settings.Default.ODBCConnectionString;
            OdbcConnection oConnection = new OdbcConnection(connectionString);
            OdbcDataReader reader = null;
            OdbcCommand command = new OdbcCommand();

            try
            {
                oConnection.Open();

                labBarcode.Text = "Verbindung hergestellt.";

                #region Lesen verursachender Fertigungsauftrag

                command.CommandText = GlobalVar.tpz_sqlFaQuelle + GlobalVar.BarCode;
                command.Connection = oConnection;
                reader = command.ExecuteReader();
                labBarcode.Text = "FA-Quelle wird ausgelesen...";

                while (reader.Read())                  
                        if (reader.IsDBNull(0) )                                                   
                            zwTpzFaNr = "null";
                        else zwTpzFaNr = reader.GetString(0);     

                            

                reader.Close();

.....

An dem hier scheitert es:

  if (reader.IsDBNull(0) )                                                   
                            zwTpzFaNr = "null";
                        else zwTpzFaNr = reader.GetString(0);   

Das ulkige: lasse ich die Abfrag auf isDBNull weg, geht die Umwandlung:


while (reader.Read())
   zwTpzFaNr = reader.GetString(0);      

Das funktioniert einwandfrei!
Der Wert ist übrigens schon ein int32, aber ich geben den ja als String zurück, also sollte es doch gehen oder
Warum geht es nicht wenn ich die Abfrage nach DBNull setze?

Noch nen Nachtrag: Es ist nur ein einziger Wert vorhanden (an dieser Stelle)

09.07.2013 - 13:49 Uhr

Ah ok, dann kann ich also die dort erstellte Verbindung nicht ansprechen, wieder was gelernt.
Mit OdbcConnection geht es übrigens wie vorher beschrieben.
Vielen Dank!

09.07.2013 - 13:44 Uhr

Hey, wenn ich das so mache kommt dann:> Fehlermeldung:

Schlüsselwort wird nicht unterstützt: 'dsn'

Also es ist eine ODBC Schnittstelle...
Und eine app.config habe ich nicht, die Datenbankverbindung wurde im Server_Explorer erstlelt.

09.07.2013 - 13:25 Uhr

verwendetes Datenbanksystem: Informix

Hallo Leute.
Ich habe im VS2012 im Server Explorer eine neue Datenbankverbindung hergestellt, was auch funktioniert. Ich kann dort die Datenbank trennen und wieder verbinden und die Daten auslesen.

Das ganze möchte ich nun in einer Funktion mit C# machen, kann aber nichts finden wie ich die connection anspreche und darauf bBefehle absetzen kann, immer nur wenn ich direkt im Code die connection erstelle, aber nicht im Server Explorer.

Wie kann ich also eine vorhanden Connection ansprechen?
Danke und liebe Grüße

11.04.2013 - 15:03 Uhr

Anwendung:
ASP.NET MVC 3, .NET4 /IIS7.5 auf Windows7
bzw. Windows 2008

Ich habe da eine Tabelle in der man Daten eingeben kann und diese verschicken kann.
Diese werden über die URL versendet und entsprechend ausgewertet.
Soweit so gut.

Werden jetzt mehr als 7 Zeilen bearbeitet und mit Text ergänzt kommt der Fehler 400- Bad Request.
Was ich darauf zurückführe, daß die maximale URL Länge , die von Haus aus auf 260 eingestellt ist, überschritten wird.

Ab 7 Zeilen werden also diese 260 Zeichen überschritten.

In der web.config habe ich deshalb folgendes einsgestellt:

<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,:,\" maxUrlLength="7200" maxRequestLength="7200" maxQueryStringLength="7200" />   

Hatte die Werte auch schon auf 650, da dies auf jeden Fall reicht.
Leider ändert sich hierbei nichts, ganz egal welche Werte ich hier einstelle, es kommt immer noch Bad Request!

Im IIS sind soweit keine Filter eingestellt, bzw. die sind auf dem Defaultwert von 2048.

Mit dem IIS integrierten Developement Server funktioniert dies aber, teste ich mit dem IIS Express bzw. IIS7.5 kann ich keine Veränderung sehen: Bad Request.

Weiß noch jemand Rat?

06.02.2013 - 10:07 Uhr

Hallo Leute.
Jetzt habe ich mal ein wirklich seltsames Problem.

Ich habe mit VS2010 Express für Web ein neues Web-Projekt angelegt und die vorhandenen Resource Dateien eines anderen Projektes nach Global_Resources importiert.

Diese liegen ja pro Resource in zwei Dateien vor:
Beispiel:
test.resx und die darunterliegende test.resx.designer.cs

Das geht schonmal nicht, die Dateien liegen einzeln vor, d.h. de Designer-Datei befindet nicht unterhalb der .resx Datei.

Ändere ich nun in der resx Datei einen String oder füge einen neuen hinzu, ist dieser String nicht bekannt, da er nicht in die Designer Datei geschrieben wird.
Füge ich diesen manuell ein, geht es.

Testhalber habe ich eine ganz neue Resourcedatei erstellen lassen und damit getestet.
Hier funktioniert es auch nicht!
Ändere ich in der resx einen String, wird dieser nicht in die Designer Datei geschrieben...

Hat jemand eine Ahnung woran das liegen könnte?

Danke und Grüßle

10.01.2013 - 09:52 Uhr

Genau das ist das Problem, die meisten Bücher beginnen mit dem Herabbeten von Typen und Entwicklungsumgebungen, das brauche ich nicht.

Das Zusammensuchen von eventuellen Funktionen im Web geht schon, ist aber sehr mühsam...

10.01.2013 - 09:39 Uhr

Hi, ok.

Dann noch die Frage: Bei

AddOrUpdate(0,1, (key, val) => {return  val +1; });

muss ich mich ja nicht mehr um die synchronisierung kümmern oder?

Kannst du eigentlich ein Buch empfehlen, das auf MVC spezialisiert ist und in die Tiefe geht?

10.01.2013 - 08:08 Uhr

Moin, es geht doch.
Mein Fehler war es...habe mich wohl im Namen vertippt, dann existiert die Sessionvariable natürlich nicht.

Aber ich kann auf Sessionvariable in Session_End ganz normal zugreifen!

09.01.2013 - 16:15 Uhr

Also mit Deiner Funktion oben geht es!
Vielen Dank!

Nur hätte ich noch eine Frage:

Ich speichere um ConcurrentDictionary zusätzliche Userdaten.
Um diese korrekt zuordnen zu können, nehme ich eine eindeutige ID, die ich von der Software bekomme.

Diese ID speichere ich in der Session und im ConcurrentDic.

Innerhalb des Programmcodes kann ich da prima vergleichen und Daten schreiben und lesen, so kann ich beim Logout den Eintrag im Dic. löschen.

Was aber wenn der User den Browser einfach zumacht, ohne auf Logout zu klicken, was in 99% der Fälle zutrifft?

Hier hätte ich gerne in der global.asax Session_End() die Userdaten im Dic gelöscht, war mir aber nicht möglich ist, da ich hier keine Session mehr habe.

Ich muss aber den angemeldeten User in Session_End() eindeutig erkennen und aus der Verwaltung löschen.

Wie handelt man sowas?

09.01.2013 - 14:55 Uhr

Da hatte ich schon versucht...null.

09.01.2013 - 14:39 Uhr

Hm..ja ok, aber weist du warum der ausgelesene Wert immer null ist?

09.01.2013 - 14:28 Uhr

Hi, ich hätte da noch eine Frage und möchte dazu aber nicht einen extra Thread eröffnen.
Bin grade am verzweifeln.

Das Problem ist folgendes:
In der global.asax stelle ich in Application_start() einen Applikationsweite Variable, damit diese überhaupt mal existiert:

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();


            Application["MaxAnzMas"] = 0;
            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }

Im Controller möchte ich nun diesen Wert abrufen und hochzählen:


 lock (Lockobjekt)
            {          

...
UInt32?= anzmas;
..       
                HttpApplicationState application = HttpContext.ApplicationInstance.Application;
                anzMas = application["MaxAnzMas"] as UInt32?;
                application["MaxAnzMas"] = ++anzMas;
            }

Mein Problem ist nun, daß anzmas immer immer null ist.
Habe es schon mit Application[] und System.Web.HttpContext.Current.Application[] versucht....immer dasselbe.
Was mache ich denn falsch??

08.01.2013 - 08:42 Uhr

Gut, dann passt das ja 👅

08.01.2013 - 08:33 Uhr

Gibt es denn einen Grund/Vorteil, außer evtl. Geschwindigkeit, ConcurrentBags zu nutzen, anstatt die Userdaten in der Session zu speichern?

07.01.2013 - 12:54 Uhr

Nun, wie haben die nicht in einer Datenbank, sonder ich sende die Anmeldedaten per Socket an eine Windowsanwendung, welche mit dann Antwort gibt, ob User vorhanden oder nicht.
Userverwaltung im klassischen Sinne gibts bei dieser Appl. nicht. Die Userdaten werden in einer Session gehalten...

07.01.2013 - 12:46 Uhr

Ja es wird ein Lizenzsystem.
Daß das mit der Session nicht elegant ist, dachte ich mir ebenfalls und kann den Einwand von Solid ebenfalls bekräftigen =)
Wäre halt schön einfach gewesen.

Das Decrement in Session_End muss ich aber drin lassen, denn nicht alle klicken auf den Logout Button sondern machen den Browser einfach zu.

Dann werde ich mich mal in ConurrentBag einlesen (Fremdword bisher)

07.01.2013 - 12:05 Uhr

Hallöle und ein gutes neues Jahr allerseits.

In meiner mobilen ASP.NET MVC Applikation möchte ich eine Art Userverwaltung implementieren.
Die Maximale Anzahl der angemeldeten User wird bei Applicationsstart festgelegt und in einer Variablen gespeichert.

In der global.asax incrementiere ich nun in Session_Start eine Applicationsweite Zählvariable: Application"MaxAnzUser".

In Session_End() decremtiere ich diese wieder.

So kann ich die Anzahl Applicationsweit abrufen und vergleichen.
Übersteigt beim Login nun die aktuelle Anzahl die maximale, wird eine Fehlermeldung ausgespuckt und man kann sich nicht einloggen.

Das Funzt soweit ganz gut, nur habe ich ein Problem(chen):

Klickt einer auf "Logout", werden die Benutzerdaten in der Session gelöscht und die Session beendet: Session.Abandon().

Es gibt nun eine Weiterleitung auf eine andere Seite, mit der Meldung, daß man ausgeloggt wurde...auf dieser Seite aber wird nun wieder eine neue Session gestartet, da die alte ja gelöscht wurde und somit auch gleich der Zähler incrementiert.

Die Session lösche ich deshalb, damit ein Benutzerwechsel möglich ist, ohne daß die sich in die quere kommen...

Kann man so etwas auch eleganter lösen?
Gibt es die Möglichkeit auf einer bestimmten Seite keine Session zu starten?

 private Object Lockobjekt = new object();
        protected void Session_Start()
        {


            lock (Lockobjekt)
            {
                int maxanz = (int)Application["MaxAnzMas"];
                maxanz++;
                Application["MaxAnzMas"] = maxanz;
            }
            
            

        }
        protected void Session_End()
        {
            lock (Lockobjekt)
            {
                int maxanz = (int)Application["MaxAnzMas"];
                maxanz--;
                Application["MaxAnzMas"] = maxanz;
            }
            
        }
02.10.2012 - 11:25 Uhr

Das ist doch Webforms, hat aber wenig mit MVC zu tun, oder?

02.10.2012 - 11:10 Uhr

Hallo Community.
Ich habe ein kleines Projekt mit ASP.NET MVC4.

Ich sollte eine Variable im Controller immer zurücksetzen bevor eine View aufgerufen wird.
Gibt es hierfür eine Methode, die immer aufgerufen wird bevor eine View gerendert wird?
Wie bei ASP.NET z.B die Render Methode oder sowas?
Danke und Grüße

03.07.2012 - 10:01 Uhr

Ja. Siehe auch
>

Wenn aber ein IIS 7.5 sowies installiert ist, würde ich auch diesen verwenden.

Ja, ist ja auch programmierbar und funktioniert auch.
Kommt halt immer auf den Kunde an.
Danke!

03.07.2012 - 07:30 Uhr

Guten Morgen.
Noch schnell eine Frage an den erfahrenen Abt 😁
Der IIS Express ist ja redistributable.

Ich biete unseren Kunden bisher immer einen alternativen Webserver an ( bisher Ultidev), falls die keine Lust haben den IIS einzusetzen oder sich da nicht hintrauen (kommt sehr oft vor)

Wäre es eine Möglichkeit den IIS Express parellel zu einem eventuell vorhandenen IIS zu installieren und den direkt (per Kommandozeile z.B.) im eigens dafür geschriebenen Setup zu konfigurieren?

Daß die Konfiguration per command geht weiß ich inzwischen, es geht nur darum, ob das neben dem IIS 6,7, oder 7.5 geht und ob das generell sinvoll ist.

Praktisch wäre eine "All-In-One" Lösung bei der auf Wunsch der IIS Express installiert und konfiguriert wird ohne, daß der Kunde Hand anlegen muss.

Was sagt dazu der langjährig erfahrene Experte?

02.07.2012 - 14:04 Uhr

Den Develop Webserver habe ich nur nochmal zum Test benutzt.
Mitm IIS gehts inzwischen auch, wenn ich den Pipelinemodus auf **integriert **stelle.
Im **Classicmodus **gehts wohl nicht...

Den Devserver werde ich nie mehr nutzen, versprochen =)

02.07.2012 - 10:30 Uhr

Hey, also folgendes:

Mit dem VS Developement Webserver geht es, mit dem IIS Express und IIS 7.5 nicht!!!

Da kommt die Meldung:

Der Handler "thumbnails" weist das ungltige Modul "ManagedPipelineHandler" in der Modulliste auf.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

bringt nach wie vor nichts.

Warum geht es mit dem Developement Server und mit dem IIS nicht?

02.07.2012 - 09:55 Uhr

Trotzdem nutzt man in MVC - eigentlich - keine Handler mehr, sondern Custom ActionResults.
Handler müssen in den Routes in der Global.asax.cs ignoriert werden. Standardmäßig ist bereits der Eintrag a_routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" ); enthalten.

Das ist kein Handler als .axd Datei, sondern eine ganz normale .cs Datei.
Sollte ich evtl. die Route, die .tmbn enthält ignorieren?

28.06.2012 - 12:52 Uhr

Habe ich bereits ausgeführt wie hier beschrieben und sogar einen Neustart gemacht->keine Änderung.

Hat ja keinen Sinn so, es muss aber an .NET 4 liege, da es auf 3.5 ja geht.
Dann muss ich es halt anders machen...

Edit: Habe nun das .NEt Framework 4.0 komplett deinstalliert und wieder installiert: Gleiche fehlermeldung.

Edit2: habe nun alles nur erdenkliche ausprobiert: Keine Chance!
Es liegt also definitiv am .net 4.

VS2008 mit 3.5 gestartet, debuggen: geht!

28.06.2012 - 11:57 Uhr

Ok, dann debugge ich halt nun auf dem IIS Express:)

Meldung jetzt:

Der Handler "thumbnails" weist das ungültige Modul "ManagedPipelineHandler" in der Modulliste auf.

Muss ich mal Onkel Google anschmeißen.

28.06.2012 - 10:15 Uhr

Jetzt wirds kompliziert.

Ich nutze den VS Developer Server, zum lokalen Test die IIS7.5 auf Windows 7 Ultimate.
Keine Ausnahmen oder ähnliches.

Ich habe das inzwischen recht umfangreiche Projekt aus VS2008 importiert und automatisch an VS2010 umwandeln lassen.

Da ich schon ein kleineres Projekt mit MVC erstellt habe und dieses sehr erfolgreich ist und ich von MVC begeistert bin (volle Kontrolle) wollte ich erst das Projekt ganz neu mit MVC mache, was natürlich nicht geht.
Also mache ich es Schrittweise, alle neue Funktionen werden in MVC realisiert, die alten Winform bleiben bzw. werden umfunktioniert wenn ich mal und Luft Zeit habe.

Auch habe ich die ganzen Rapid-Dinger (fertige Steuerelemente) rausgeschmissen und nutze nur noch jQuery !
Seit dem ist die ganze Anwendung um Längen schneller geworden und für mich einfacher.
Aber darum gehts ja nu nicht.

Das derzeitig beschriebene Problem betrifft zwar eine .aspx Seite, aber darauf sind keine Webformen, sondern es ist ein Kalender der dynamisch erzeugt wird aus per Socket übergebenen Daten.
Dieser besteht aus einer einfachen HTML Tabelle und die entsprechenden Grafiken werden über den Handler erzeugt.

Ich forsche mal weiter.

28.06.2012 - 09:50 Uhr
<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=152368
  -->
<configuration>
  <appSettings>
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <httpRuntime requestValidationMode="2.0" relaxedUrlToFileSystemMapping="true"  requestPathInvalidCharacters="&lt;,&gt;,*,%,:,&amp;,\" />
    <httpHandlers>
      <remove verb="*" path="*.asmx" />
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
      

      <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />

     

    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </httpModules>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        <add assembly="System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        <add assembly="System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        
      </assemblies>
    </compilation>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>
    <pages theme="Meins">
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />

    <handlers>
      <add  verb="*" path="*.tmbn"
            name="thumbnails"
            type="thumbnails" />
    </handlers>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
28.06.2012 - 09:46 Uhr

Nützt leider leider auch nichts...Resource nicht gefunden...

Natürlich debugge ich mit dem VS App Server, mit VS2008 gehts einwandfrei...
Naja irgendwo wird der Fehler schon liegen.
Muss auch dazu sagen, daß ich halb-MVC und halb Webform arbeite:)
Daran kanns aber nicht liegen.

28.06.2012 - 09:37 Uhr

Hallo Herr Abt.

Ich hatte es ja irgendwann schonmal am Laufen..wenn ich meinen Post hier so lese.
Mit requestValidationMode gibt es keine Veränderung, ich meine auch, daß es nicht mehr am"illegalen" Zeichen liegt, sondern daß der Handler gar nicht mehr aufgerufen wird, sonst wäre die Fehlermeldung eine andere...

trotzdem Danke!

28.06.2012 - 08:54 Uhr

Also ich weiß jetzt nicht woran es bei Dir liegt, aber ich hatte auch mal ein WebSetup angelegt.
Da muss man mit dem UpgradeCode und ProductCode herumspielen, bzw. bei jedem neuen Erstellen der Setups den UpgradeCode (oder ProductCOde) neu erstellen lassen, ansonsten meint der Installer, daß das Produkt schon installiert ist.

Es ist ziemlich kompliziert, aus diesem Grund habe ich damals ein Winform Anwendung erstellt, welche mir das ganze Zeug packt und als Installer beim Kunden Menügeführt entpackt.

Guckst mal hier, vllt hilfts weiter: Web Setup Projekt

28.06.2012 - 08:49 Uhr

Guten Morgen.

Wäre gut, wenn jemand einen Tip dazu hätte, komme seit Tagen an dieser Stelle nicht weiter.
Abt wo biste? 😁

27.06.2012 - 11:18 Uhr

Hallo, also irgendwie stehe ich mal wieder auf der Leitung.
Um diesen Thread nochmals auszugraben:

Beschreibung, Siehe erster Post von mir.
Das Projekt habe ich nun überarbeitet und komme nun wieder an die Stelle mit dem Handler.

Dem Pipe Zeichen, welches ja als "illegal" deklariert wurde, bin ich so zu Leibe gerückt, daß ich in der web.config folgendes hinzugefügt habe:

<httpRuntime requestValidationMode="4.0" relaxedUrlToFileSystemMapping="true"  requestPathInvalidCharacters="&lt;,&gt;,*,%,:,&amp;,\" />

Nun wird auch nicht mehr gemeckert.
Mein eigentliches Problem ist, daß der Handler nicht mehr aufgerufen wird.

Es war ja so, daß ich viele kleine Thumbs erstellen lasse indem ich folgendes im src- Attribut im <img> Tag angebe:

".tmbn/img" + "|" + vor + "|" + nach + "|" + st + "|" + wt + "|" + isAkt;

In der web.config gebe ich den Handler so an:

<add verb="*" path=".tmbn" type="MeinNameSpace.V5.thumbnails"></add>

Hier wird also die Funktion Namens thumbnails aufgerufen, die sich im angegebenen Namespace befindet.

Diese sieht so aus:

namespace MeinNameSpace.V5
{
    public class thumbnails : IHttpHandler
    {
        /// <summary>
        /// Sie mssen diesen Handler in der Datei "web.config" Ihres 
        /// Webs konfigurieren und mithilfe von IIS registrieren, damit Sie ihn verwenden knnen. Weitere Informationen finden Sie
        /// unter folgendem Link: http://go.microsoft.com/?linkid=8101007
        /// </summary>
        #region IHttpHandler Members


        public bool IsReusable
        {
            // Gibt "FALSE" zurck, wenn der verwaltete Handler nicht fr eine andere Anforderung verwendet werden kann.
            // Fr gewhnlich wre dies "FALSE", falls Zustandsinformationen auf Anforderung beibehalten werden.
            get { return true; }
            
        }

        public void ProcessRequest(HttpContext context)
............
        {

Debugge ich das Projekt mit VS2008 und .NET 3.5 funktioniert alles einwandfrei. Die Funktion wird aufgerufen und die Grafiken entsprechend erzeugt, auch wenn ich zum Test den o.g. erzeugten .tmbn... Link direkt im Browser eingebe.

Unter VS2010 und .NET 4 nicht.
Die Funktion wird erst gar nicht aufgerufen, gebe ich den .tmbn- Link direkt im Browser ein, kommt die Meldung "Resource kann nicht gefunden werden..."

Also irgendwie scheint der Handler nicht korrekt registriert zu sein, es ist aber alles identisch mit der Version aus VS2008.

Muss ich noch unter .NET 4 irgendwas andere beachten, oder woran kann das liegen?

21.06.2012 - 10:58 Uhr

Hallo Abt, du bist ja ein richtiger Crack!

Vielen Dank, das hat mir sehr weitergeholfen und auch bestätigt, was ich bereits vermutet habe.
Bei meinem Versuch hier hat es funktioniert indem ich die Domain des cookies wie von Dir beschrieben gesetzt habe.
Damit kann ich beliebige Subdomains aufrufen.
Die Anwendung, die das Cookie setzt ist eine ISAPI Anwendung, also sende ich das Cookie direkt im Header.

Vielen Dank, wieder was gelernt!
Alex

21.06.2012 - 09:47 Uhr

Heya.

Nach genauem Hinsehen habe ich festgestellt, daß das Cookie von:
http://sub1.ServerDesKunden.com gesetzt wird und meine Anwendung von
http://sub2.ServerDesKunden.com abgerufen wird.

Habe hier nun mit der hosts Datei herumgespielt und dasselbe Problem festgestellt:

Wird das Cookie von Domain X gesetzt, kann es nicht von Domain Y gelesen werden.

D.h. es kann nicht am MachineKey liegen, sondern an den unterschiedlichen Domains.

Kann man das umgehen oder muss ich den Kunden anweisen, bei den Anwendungen auf derselben Domain aufzurufen?

PS: Anwendung 1 bei der das Cookie gesetzt wird, ist **keine **ASP.NET Anwendung!

21.06.2012 - 09:17 Uhr

Hallo Community.

Mal wieder ein seltsames Problem meinerseits, das ich mir nicht erklären kann.

Folgendes:
Ich habe für einen Kunden eine kleine ASP.NET Anwendung auf Basis von MVC 3 und .NET 4 erstellt.
Diese prüft zu Beginn ob ein bestimmtes Cookie gesetzt ist und liest dieses ggf aus.
Ist das Cookie nicht vorhanden, bricht die Anwendung mit einer Fehlermeldung ab.

Hier bei mir tut alles genau so wie es soll, egal ob auf Windows 7 oder Windows 2008 Server oder Lokal/Client, das Cookie wird korrekt erkannt und ausgelesen.

Beim Kunden jedoch funktioniert dies nicht so.

Obwohl das Cookie vorhanden ist, wird dieses nicht ausgelesen und die entsprechende Fehlermeldung erscheint im Browser.

Dabei ist es egal, ob lokal oder vom Client aus und welcher Browser, das Cookie wird nicht erkannt, obwohl es definitiv vorhanden ist !

Der einzige Unterschied zu meinem Aufbau hier ist, daß der Kunde die Webseite über DNS aufrift, d.h. nicht direkt auf dem Server wie ich.
Wie genau der Kunde dies realisiert weiß ich nicht.

Beispiel:
Ich rufe die Anwendung so auf: http://UnserServer:8080/anwendung
Der Kunde: http://subdomain.UnsereDomain.com/anwendung

Das Cookie frage ich so ab:

   if (Request.Cookies["userData"] != null)

Eine Vermutung ist, daß es am DNS des Kunden liegt bzw. am im Cookie eingetragenen Pfad, welcher stets "/" lautet.

Wie gesagt, das Cookie ist definitiv vorhanden, aber immer "null", d.h. es wird nicht erkannt.

Muss ich den Pfad im Cookie ändern?
Woran kann dies noch liegen?

Wäre toll, wenn jemand Erfahrungswerte hat, denn der Kunde und ich kommen so nicht weiter.

Vielen Dank schonmal, cuborg

21.05.2012 - 15:36 Uhr

Vielen Dank 👍

Einmal neu gespeichert, somit Datentyp korrekt und schon geht es.
Schon wieder was gelernt!

21.05.2012 - 14:27 Uhr

Hallöle.

Ich habe ein bestehendes ASP.NET Projekt, also den Projektordner kopiert und dann die darin enthaltene Projektdatei gestartet.
Dann habe ich das Projekt in den Projekteigenschaften umbenannt, so daß im /bin Ordner die erzeugte DLL auch nach dem neuen Namen lautet.

Das alte Projekt hieß z.B. Projekt.V5, das neue heist Projekt.WEB.
Beim Ausführen klappt alles bis an der Stelle wo er eine XML Deserialisierung durchführt.

Hier kommt die Meldung, daß die Assembly Projekt.V5 nicht gefunden werden kann.

Irgendwo steckt also noch irgendein Verweis zu Projekt.V5 drin, nur wo?

Fehlermeldung:

Projekt.V5, Version=1.0.4275.12659, Culture=neutral, PublicKeyToken=null" kann nicht gefunden werden.
bei System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
bei ....

Befehl:


FileStream fs = new FileStream(pfad, FileMode.Open, FileAccess.Read, FileShare.Read);
                BinaryFormatter bf = new BinaryFormatter();
                Object o = bf.Deserialize(fs);

09.05.2012 - 09:55 Uhr

Das ist mir - im Prinzip - klar, nur habe ich bisher die Daten vom Server - zum - Server per Base64 übertragen, wusste auch nicht genau wie .serialize arbeitet.
Stand wohl irgendwie auf der Leitung.

09.05.2012 - 09:28 Uhr

HttpUtility.UrlDecode

Scheint die Lösung zu sein.

09.05.2012 - 09:04 Uhr

Hallo mal wieder.
Ich habe ein Problem, das wahrscheinlich gar keines ist, aber ich komme seit Stunden nicht weiter.
Ich habe eine Formular, dessen Daten ich per jQuery auslese und dann per Post an eine ASP.NET Anwendung sende.

Das Script sammelt die per Checkbox ausgewählten Spalten einer Tabelle ein und wertet diese per .serialize aus.

Das Problem ist nun, daß die Umlaute total seltsam ankommen:
Gebe ich z.B.

öäü-- in ein Textfeld im Formular ein, kommt diese als
%C3%A4%C3%BC%C3%B6-- aus der .serialize Funktion raus.
Versuche ich das mit .val() kommen die Daten korrekt an.

Seltsam ist das ja nicht, denn es wird alles UTF-8 kodiert, oder?

Die Javascript Funktion sieht u.a. so aus:


 $('#submitExport').click(function () {
          var sData = oTable.$('input').serialize();
          alert(sData);
.....

Was kann ich tun, daß ich die korrekten Umlaute habe, bzw. diese dann korrekt per Post an den Server schicken kann?

21.03.2012 - 12:59 Uhr

Ich habe es per Nuget in VS2010 installieren lassen 😁

16.03.2012 - 14:05 Uhr

Ich habs, es war das Pipe Zeichen.
Warum geht das mit .NET 3.5 und mit .NET4 nicht mehr?

16.03.2012 - 13:48 Uhr

Hallöle.

Meine ASP.NET Webanwendung läuft auf .NET 3.5 und funktioniert auch soweit.

Ich habe nun -wegen der Neuerungen- VC2010 Express geladen und mein Webprojekt testweite darin importiert und auf .NET 4 umgestellt.

Es geht alles soweit bis auf eine Funktion, bei der ich über einen Handler eine Grafik erzeugen lasse.
Diesem Handler übergebe ich eine URL anhand derer der Handler die Grafik erzeugt.

Geht mit VC2008/.NET 3.5 perfekt, aber it VC2010/.NET4 nicht.

Die Zeile, die ich dem Handler übergebe lautet:

 ".tmbn/img" + "|" + vor + "|" + nach + "|" + st + "|" + wt + "|" + isAkt;

Das wird dann übergeben:

".tmbn/img|0|4|0|4|true

Jetzt kommt die fehlermeldung "Illegales Zeichen" im Pfad, nur welches sagt er mir nicht.

Welches Zeichen ist da seit .NET 4 illegal und wie kann ich das beheben?

Herzlichen Dank und Grüßle

Original Message:

Fehlermeldung:
<html>
<head>
<title>Illegales Zeichen im Pfad.</title>
<style>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Lucida Console";font-size: .9em}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
</style>
</head>

&lt;body bgcolor=&quot;white&quot;&gt;  

        &lt;span&gt;&lt;H1&gt;Serverfehler in der Anwendung /.&lt;hr width=100% size=1 color=silver&gt;&lt;/H1&gt;  

        &lt;h2&gt; &lt;i&gt;Illegales Zeichen im Pfad.&lt;/i&gt; &lt;/h2&gt;&lt;/span&gt;  

        &lt;font face=&quot;Arial, Helvetica, Geneva, SunSans-Regular, sans-serif &quot;&gt;  

        &lt;b&gt; Beschreibung: &lt;/b&gt;Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.  

        &lt;br&gt;&lt;br&gt;  

        &lt;b&gt; Ausnahmedetails: &lt;/b&gt;System.ArgumentException: Illegales Zeichen im Pfad.&lt;br&gt;&lt;br&gt;  

        &lt;b&gt;Quellfehler:&lt;/b&gt; &lt;br&gt;&lt;br&gt;  

        &lt;table width=100% bgcolor=&quot;#ffffcc&quot;&gt;  
           &lt;tr&gt;  
              &lt;td&gt;  
                  &lt;code&gt;  

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.</code>

              &lt;/td&gt;  
           &lt;/tr&gt;  
        &lt;/table&gt;  

        &lt;br&gt;  

        &lt;b&gt;Stapelüberwachung:&lt;/b&gt; &lt;br&gt;&lt;br&gt;  

        &lt;table width=100% bgcolor=&quot;#ffffcc&quot;&gt;  

           &lt;tr&gt;  
              &lt;td&gt;  
                  &lt;code&gt;&lt;pre&gt;  

[ArgumentException: Illegales Zeichen im Pfad.]
System.IO.Path.CheckInvalidPathChars(String path) +126
System.IO.Path.Combine(String path1, String path2) +38
System.Web.Configuration.UserMapPath.GetPhysicalPathForPath(String path, VirtualDirectoryMapping mapping) +114
System.Web.Configuration.UserMapPath.GetPathConfigFilename(String siteID, VirtualPath path, String&amp; directory, String&amp; baseName) +82
System.Web.Configuration.UserMapPath.MapPath(String siteID, String path) +58
System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull) +301
System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath) +42
System.Web.Hosting.MapPathBasedVirtualPathProvider.CacheLookupOrInsert(String virtualPath, Boolean isFile) +38
System.Web.Hosting.MapPathBasedVirtualPathProvider.FileExists(String virtualPath) +6
System.Web.WebPages.FileExistenceCache.FileExists(String virtualPath) +79
System.Web.WebPages.VirtualPathFactoryManager.PageExistsInVPP(String virtualPath, Boolean useCache) +90
System.Web.WebPages.VirtualPathFactoryManager.PageExists(String virtualPath, Boolean useCache) +106
System.Web.WebPages.WebPageRoute.FileExists(String virtualPath, VirtualPathFactoryManager virtualPathFactoryManager) +33
System.Web.WebPages.WebPageRoute.MatchRequest(String pathValue, IEnumerable`1 supportedExtensions, VirtualPathFactoryManager virtualPathFactoryManager) +99
System.Web.WebPages.WebPageRoute.DoPostResolveRequestCache(HttpContextBase context) +182
System.Web.WebPages.WebPageHttpModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +95
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +75
</pre></code>

              &lt;/td&gt;  

           &lt;/tr&gt;  
        &lt;/table&gt;  

        &lt;br&gt;  

        &lt;hr width=100% size=1 color=silver&gt;  

        &lt;b&gt;Versionsinformationen:&lt;/b&gt;&amp;nbsp;Microsoft .NET Framework-Version:4.0.30319; ASP.NET-Version:4.0.30319.272  

        &lt;/font&gt;  

&lt;/body&gt;  

</html>
<!--
[ArgumentException]: Illegales Zeichen im Pfad.
bei System.IO.Path.CheckInvalidPathChars(String path)
bei System.IO.Path.Combine(String path1, String path2)
bei System.Web.Configuration.UserMapPath.GetPhysicalPathForPath(String path, VirtualDirectoryMapping mapping)
bei System.Web.Configuration.UserMapPath.GetPathConfigFilename(String siteID, VirtualPath path, String& directory, String& baseName)
bei System.Web.Configuration.UserMapPath.MapPath(String siteID, String path)
bei System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull)
bei System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath)
bei System.Web.Hosting.MapPathBasedVirtualPathProvider.CacheLookupOrInsert(String virtualPath, Boolean isFile)
bei System.Web.Hosting.MapPathBasedVirtualPathProvider.FileExists(String virtualPath)
bei System.Web.WebPages.FileExistenceCache.FileExists(String virtualPath)
bei System.Web.WebPages.VirtualPathFactoryManager.PageExistsInVPP(String virtualPath, Boolean useCache)
bei System.Web.WebPages.VirtualPathFactoryManager.PageExists(String virtualPath, Boolean useCache)
bei System.Web.WebPages.WebPageRoute.FileExists(String virtualPath, VirtualPathFactoryManager virtualPathFactoryManager)
bei System.Web.WebPages.WebPageRoute.MatchRequest(String pathValue, IEnumerable`1 supportedExtensions, VirtualPathFactoryManager virtualPathFactoryManager)
bei System.Web.WebPages.WebPageRoute.DoPostResolveRequestCache(HttpContextBase context)
bei System.Web.WebPages.WebPageHttpModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e)
bei System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
bei System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
-->