Laden...

Forenbeiträge von schuppsl Ingesamt 789 Beiträge

04.07.2022 - 13:59 Uhr

Vielen Dank, funktioniert!

04.07.2022 - 11:22 Uhr

Hallo zusammen,

in meiner .NET 4.8 WinForm Application möchte ich ein Konsolenprogramm starten.
Dies ist ein "externes" Programm und läuft dann außerhalb der WinForms Anwendung selbstständig weiter.

Anschließen starte ich ein zweites Konsolenprogramm, welches den Status des ersten als XML String zurückgibt.
Dies ist ebenfalls ein "Externes" Programm, das unabhängig läuft.
Die Vorgehensweise ist si festgelegt.

Das Ergebnis, also den XML String sollte ich nun im WindowsForms Programm abfangen, um den Status herauszufiltern.
Das Starten der Programme ist kein Problem, aber wie kann ich die Ausgabe abfangen?

Ich habe verschiedene Wege ausprobiert, aber keiner funktioniert richtig:



            System.Diagnostics.Process process = new System.Diagnostics.Process();
            process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            process.StartInfo.FileName = "cmd.exe";
            process.StartInfo.Arguments = $"/C meinTollerBefehl \"D:\\Programme\\xxx\\{lblResult.Text}\"";
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.CreateNoWindow = true;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardInput = true;
            process.Start();
            process.OutputDataReceived += Process_OutputDataReceived;
            process.ErrorDataReceived += Process_ErrorDataReceived;

            process.WaitForExit();

            string q = "";
            while (!process.HasExited)
            {
                q += process.StandardOutput.ReadToEnd();
            }

            MessageBox.Show(q);

Irgendwie auch logisch, da die Konsolenapplication nicht im Kontext der WindowsForms Anwendung läuft, sondern eigenständig.(Als Admin)

Gibt es hierfür eine Lösung?
Vielen Dank im Voraus!

25.01.2022 - 15:16 Uhr

Also Proxy ist keiner vorhanden.
Gepublisht wird das direkt aus VS heraus, Ordner.

24.01.2022 - 13:42 Uhr

VS 2022, .NET 6.0 Core

Hallöle zusammen,
beim Veröffentlichen meines kleines Progrämmchens, kommt folgende Fehlermeldung:

Fehlermeldung:
Der Dienstindex für die Quelle "https://api.nuget.org/v3/index.json" konnte nicht geladen werden.
2> Fehler beim Senden der Anforderung.
2> Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden..

Konfiguration ist
Zielframework: net6.0-windows
Zielruntime: win-64
Modus: Eigenständig

Bei Konfiguration Frameworkabhängig/Portierbar geht es.

Das will ich aber nicht 🙂

Die kursierenden Lösungen im Internet mit der Anpassung des Proxy haben leider nicht geholfen. (devenv.exe.config)

Ferndiagnose ist hier sicher schwierig, aber vielleicht hat noch jemand eine mögliche Lösung parat?

Herzlichen Dank im Voraus

12.01.2022 - 08:42 Uhr

Jo also, habe den Dienst komplett neu aufgesetzt.
D.h. nicht komplett neu, sondern den Quellcode natürlich kopiert.

Nun geht es.
Wahrscheinlich wurden doch irgendwelche Verweise verschluckt...

Vielen Dank für Eure Hilfe.

10.01.2022 - 13:20 Uhr

Wenn ich wüsste, welcher Code den trouble verursacht, wäre das ein leichtes.
Außer der ProjectInstaller Methode habe ich nichts, da ist das bereits eingebaut.
Der Fehler muss also früher passieren.

10.01.2022 - 12:55 Uhr

Da steht ja auch: Rufen Sie die LoaderExceptions-Eigenschaft ab, wenn Sie weitere Informationen benötigen..
Hast das gemacht? Da steht der Grund drin.

Das ist ja der Knackpunkt, wie und wo mache ich das?
Der Rest: Jaaaa, ich weiß 🙂

10.01.2022 - 11:19 Uhr

Danke.
Das kenne ich alles, hilft mir nur nicht weiter.
Ich weiß nicht wo ich das einbauen soll...

Es scheint mir auch, als fände er den Installer nicht - obwohl vorhanden.
Lösche ich die Projectinstaller.cs, erscheint dieselbe Meldung.

10.01.2022 - 10:43 Uhr

Hallo zusammen.

Visual Studio 2022
Windows Dienst .NET 4.7.2

Der Dienst läuft seit Jahren problemlos auf dem Produktionsserver.
Nun habe ich diesen mit VS 2022 aktualisiert und einige neue Features eingebaut.
Dieser wird natürlich erst auf dem Testsystem (Windows 10, lokal) installiert.

Leider geht das nicht.
Die Vorgehensweise ist immer diesselbe:

Command Prompt für VS 2022 als Admin starten und mit installutil die exe installieren.
Hat schon 100x funktioniert, auch mit diesem. Leider nicht dieses Mal.

Hier mal die Fehlermeldung:

Fehlermeldung:

Eine transaktive Installation wird ausgeführt.

Die Installationsphase wird gestartet.
Die Protokolldatei enthält den Fortschritt der Assembly c:\MeinPfad\bin\Debug\PollService.exe.
Die Datei befindet sich in c:\MeinPfad\bin\Debug\PollService.InstallLog.

Während der Installationsphase ist eine Ausnahme aufgetreten.
System.InvalidOperationException: Die Installertypen in der Assemblyc:\MeinPfad\bin\Debug\PollService.exe können nicht abgefragt werden.
Die interne Ausnahme System.Reflection.ReflectionTypeLoadException wurde mit folgender Fehlermeldung ausgelöst: Mindestens ein Typ in der Assembly kann nicht geladen werden. Rufen Sie die LoaderExceptions-Eigenschaft ab, wenn Sie weitere Informationen benötigen..

Die Rollbackphase der Installation wird gestartet.
Die Protokolldatei enthält den Fortschritt der Assembly c:\MeinPfad\bin\Debug\PollService.exe.
Die Datei befindet sich in c:\MeinPfad\bin\Debug\PollService.InstallLog.
Während der Rollbackphase des Installers System.Configuration.Install.AssemblyInstaller ist eine Ausnahme aufgetreten.
System.InvalidOperationException: Die Installertypen in der Assembly c:\MeinPfad\bin\Debug\PollService.exe können nicht abgefragt werden.
Die interne Ausnahme System.Reflection.ReflectionTypeLoadException wurde mit folgender Fehlermeldung ausgelöst: Mindestens ein Typ in der Assembly kann nicht geladen werden. Rufen Sie die LoaderExceptions-Eigenschaft ab, wenn Sie weitere Informationen benötigen..
Während der Rollbackphase der Installation ist eine Ausnahme aufgetreten. Diese Ausnahme wird ignoriert, und der Rollback wird fortgesetzt. Der ursprüngliche Zustand des Computers wird jedoch möglicherweise nicht vollständig wiederhergestellt, nachdem der Rollback beendet ist.

Die Rollbackphase wurde erfolgreich abgeschlossen.

Die transaktive Installation ist abgeschlossen.

Die Fehlermeldung besagt ja, dass eine Assembly nicht gefunden wurde?
Oder dass die Installationsroutine falsch ist?

Jedenfalls sagt der .NET Dependency Walker, dass alle Referenzen da sind.
Ich kann den Dienst sogar bis zu einem gewissen Graf direkt in VS2022 debuggen ohne Fehlermeldung.
So wird in der Startroutine das Ereignisprotokoll erfolgreich erstellt etc.

Das Ding ist nun, dass ich wissen sollte, welche Assembly fehlt...

In der Fehlermeldung steht auch, ich solle LoaderException-Eigenschaft abrufen.

Die Frage ist nun: Wie und wo kann ich das machen?

Vielen Dank im Voraus!

27.07.2021 - 08:48 Uhr

Hallöle zusammen,

ich erstelle einen Client mit RestSharp und versuche mich an der API an einem Hausinternen Dienst anzumelden.(API)
Per Postman funktioniert alles.
Nun möchte ich das in mein C# WindowsForms Programm einbauen.
Das einfachste ist, dass ich den Code 1:1 kopiere und paste.
Sollte man meinen.

Authentifizierung geschieht über Bearer Username+Passwort.

Der Dienst meldet immer, dass ich "UNAUTHORIZED" bin.

So sieht das aus, original aus Postman:


var client = new RestClient("URL-des-Dienstes");
            client.Timeout = -1;
            var request = new RestRequest(Method.GET);
            request.AddHeader("Authorization", "Bearer USername Pass Word mit Leerzeichen");
            var body = @"";
           request.AddParameter("text/plain", body, ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            Console.WriteLine(response.Content);

Anstatt request.Addheader habe ich folgendes jeweils ausprobiert:


// client.Authenticator = new AuthenticationHeaderValue("Username", "Pass Word mit Leerzeichen");
// client.Authenticator = new OAuth2AuthorizationRequestHeaderAuthenticator("Username Pass Word mit Leerzeichen", "Bearer");          
// request.AddParameter("Authorization", "Bearer USername Pass Word mit Leerzeichen",ParameterType.HttpHeader);
//  client.AddDefaultHeader("Authorization", $"Bearer USername Pass Word mit Leerzeichen");

Nichts funktioniert, immer bekomme ich Unauthorized.
Das Passwort ist so wie es hier ist - mit Leerzeichen, also ein Satz.
Könnte es daran liegen?
Was macht Postman anders?

Vielleicht hat jemand eine Idee dazu....

25.01.2021 - 12:37 Uhr

Ganz herzlichen Dank!

25.01.2021 - 12:14 Uhr

Und wie könnte diese Lösung ungefähr aussehen?
Stored Procedure, die das vorab prüft?

25.01.2021 - 11:26 Uhr

Ganz lieben Dank.

Naja, Du prüfst offenbar halt nur Client-seitig.

Doch, der würde was bringen, wenn es in der Datenbank erfolgt.
Du prüfst aber eben innerhalb einer potentiellen Race Condition: natürlich ist das dann nicht stabil.

Die Prüfung auf vorhandenen Eintrag wird innerhalb der Using-Anweisung gemacht.

Doch, der würde was bringen, wenn es in der Datenbank erfolgt.
Du prüfst aber eben innerhalb einer potentiellen Race Condition: natürlich ist das dann nicht stabil.

So ist es.

Prüfung in der Datenbank? Interessant.

Also ist die Entprellung des Absendebuttons der beste Weg um das Problem zu minimieren.

25.01.2021 - 09:27 Uhr

verwendetes Datenbanksystem: MSSQL

Hallo zusammen.

Eine Webanwendung speichert Formulardaten in einer Datenbank.
Es gibt also einen Senden-Button, welcher eine Backend-Methode zur Speicherung ausführt.

Per EFCore werden die Daten dann gespeichert.
Es scheint nun so, dass unser Datenbankserver ab und zu Probleme damit hat, Verbindungen aufzubauen.

Das daraus resultierende eigentliche Problem gestaltet sich aber folgendermaßen:

Absendebutton wird gedrückt, es wird versucht, die DB - Verbindung herzustellen, was aber in seltenen Fällen 5-8 Sekunden dauern kann.
Der User der Webanwendung wartet kurz und drückt dann nochmals auf Absenden, da es anscheinend beim ersten Mal nicht funktioniert hat.
Somit wird die "hängende" Methode erneut aufgerufen und EFCore versucht nochmals die Verbindung aufzubauen.

Irgendwie, irgendwo laufen also 2 Threads und beide "hängen" beim Verbindungsaufbau. (Using)
Geht es dann, so werden die Formulardaten doppelt in der DB gespeichert, da die Funktion zweimal aufgerufen wurde.

Der Verbindungsaufbau wird per Using gemacht:


using (con= new MyContext())
{
//
}

Und irgendwo hier hängt es dann.
Aus meiner Sicht ist das Problem, dass die Verbindung 2x aufgebaut und die Tabelle 2x in 2 verschiedene DbContext gelesen wird.
Deshalb schlagen Prüfungen, ob der Eintrag schon vorhanden ist (spezielle Kombination aus Key+ weitere Felder) fehl.

Es ist also ein Grundsatzproblem, was ich nicht verstanden habe.

Entprellung des Sendenbuttons und Hinweise in der Webanwendung- Ja.
Prüfung, ob der Eintrag schon in der DB existiert - Ja ( nützt hier aber nichts)
Klärung, warum die DB ab und zu die Verbindung so langsam aufbaut - Ja.

Damit kann man das Problem entschärfen oder umgehen, aber gelöst ist es grundsätzlich nicht.

Parallelitäts Erkennung nützt hier mMn nach auch nicht viel, da in die Tabelle nur geschrieben wird und derselbe Datensatz nicht von mehreren verändert wird.

Was ist hier also das Problem am Design, was habe ich nicht verstanden und wie hieße das "Zauberwort" für so einen Fall?

Ganz herzlichen Dank im Voraus.

21.01.2021 - 13:18 Uhr

Natürlich hattest Du recht.

Es war in einem Datenbankfeld, welches als smallint, NULL definiert ist.
Aus irgendeinem Grund ist es in meinem Model byte, korrekt ist aber** short?**.

Da das Feld einfach so herumdümpelt und ich noch nie gebraucht habe, ist mir das bisher noch nie aufgefallen.

Herzlichen Dank an alle für die Mühe und Zeit.

21.01.2021 - 11:58 Uhr

Hm, wirklich seltsam das ganze.
Der DbContext wurde per Migration, also Datebase First generiert.
Von daher sollten die Datentypen passen.

21.01.2021 - 11:42 Uhr

Der Datentyp in der Datenbank ist nvarchar(3).

21.01.2021 - 11:25 Uhr

verwendetes Datenbanksystem: MSSQL

Verzweifelt suche ich meinen Fehler.
In einer Webanwendung wird per jQuery-$.Ajax eine Funktion im Webservice aufgerufen.

In dieser wird eine kleine Datenbankabfrage per EF Core getätigt.
Die identische Abfrage habe ich in anderen Funktionen, welches absolut kein Problem darstellt und alles funktioniert wunderbar.
Nur in dieser nicht.
Die Javascript Funktion wird per Button auf der Weboberfläche aufgerufen, wie alle anderen auch:


 var request =
    {
        "method": "POST",
        "url": urlReset,
        "data": {authorisation: "xy" }
    }
    $.ajax(request)
        .done(function (ergebnis) {
            alert("success");
        });

Die Funktion im Backend wird aufgerufen:


[HttpPost]
        public ActionResult ResetWagen(string authorisation)
        {
.......


Dann wird per Using die Abfrage gemacht:


using (var content = new MyContext())
            {
                
                var resData = content.PulverDataMan.AsQueryable().Where(x => x.IWagenNr == "99");

                if (resData.Any())//Datensatz vorhanden?
                {


Per Haltepunkt auf .Any(), Erweiterung auf Ergebinsansicht
steht im Feld "Message" die Meldung: > Fehlermeldung:

Die angegebene Umwandlung ist ungültg

Jetzt stellt sich mir die Frage: Welche Umwandlung?

IWagenNr ist vom Typ String, siehe DbContext


 [Column("WagenNr")]      
        public string IWagenNr { get; set; }


Also sollte

 x.IWagenNr == "99"

keiner Umwandlung bedürfen.

InnerException gibt es nicht, im Stacktrace steht:


   bei Microsoft.Data.SqlClient.SqlBuffer.get_Byte() in H:\tsaagent2\_work\11\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\SqlClient\SqlBuffer.cs:Zeile 168.
   bei Microsoft.Data.SqlClient.SqlDataReader.GetByte(Int32 i) in H:\tsaagent2\_work\11\s\src\Microsoft.Data.SqlClient\netfx\src\Microsoft\Data\SqlClient\SqlDataReader.cs:Zeile 1794.
   bei lambda_method(Closure , QueryContext , DbDataReader , ResultContext , Int32[] , ResultCoordinator )
   bei Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext()
   bei System.Linq.SystemCore_EnumerableDebugView`1.get_Items()

In Expression.DebugView steht:


.Call System.Linq.Queryable.Where(
    .Constant<Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[Pulverlackierung.Models.ColModel]>(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[Pulverlackierung.Models.ColModel]),
    '(.Lambda #Lambda1<System.Func`2[Pulverlackierung.Models.ColModel,System.Boolean]>))

.Lambda #Lambda1<System.Func`2[Pulverlackierung.Models.ColModel,System.Boolean]>(Pulverlackierung.Models.ColModel $x) {
    $x.IWagenNr == "99"
}
}

Wie bereits erwähnt ist die exakte Abfrage in anderen Funktionen ebenso vorhanden, ohne Probleme.

Was habe ich übersehen?
Ganz herzlichen Dank im Voraus.

16.09.2020 - 19:11 Uhr

Guten Abend.

In einigen meiner Projekte (.Net Framework 4.7.2) habe ich Newtonsoft.Json 12.0.0.0 per Nuget installiert.
Die Nuget Package Verwaltung sagt mir auch, dass dieses Paket installiert sei.
In der Verweisliste im Projekt taucht die jedoch nicht auf.

Beim Debuggen des Projektes kommt dann auch File.NotFound Exception.
Verlinke ich diese direkt aus /packages/Newtonsoft.Json.12.0.0 wird sie unter den Verweisen aufgeführt und auch gefunden.

Ist jemand dieses Phänomen bekannt?
Ist hier de Nuget Package Manager schuld?

14.09.2020 - 08:39 Uhr

Moin, ich hätte noch einen Nachschlag.

System.Data.SqlClient ist nicht mehr vorhanden, sondern Microsoft.Data.SqlClient.

Beim Ausführen (Debug) heißt es, dass die Anwendung nicht gestartet werden kann, aufgrund einer falschen Anwendungskonfiguration und ich solle doch mal in die Ereignisanzeige schauen.

Da steht dann:> Fehlermeldung:

Microsoft.Data.SqlClient.SNI.x64.dll
Zwei oder mehr, vom Anwendungsmanifest direkt oder indirekt referenzierte Komponenten beinhalten Dateien mit demselben Namen.

Grund dafür sind diese Einträge in der [Programmname].manifest:

<file name="Microsoft.Data.SqlClient.SNI.x64.dll" size="549256">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>FQwBjrY2O421eg/ESWk1/ek15S199tZ0MOq18dY4YNk=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x64.dll" size="510840">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>Rmsqtz8i0rUFKcM4leepPhXDs28uU9XJJtOY6ooTTsM=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x64.dll" size="549240">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>D/9ZSzuRrA2K0/QHaj0ZL+nr6gV3gJzpicX9cJB6Iwo=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x86.dll" size="497024">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>Lu2OS1/HxJEtOVQdVh25zYLvDLjpJk17WnE+RHNoc2g=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x86.dll" size="440696">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>fdxYToKw1/AzNQ/3sDJYl4OLmTgFp6nR1BP8QAMBquY=</dsig:DigestValue>
</hash>
</file>
<file name="Microsoft.Data.SqlClient.SNI.x86.dll" size="497016">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
<dsig:DigestValue>5OVK8KFhaRyp8M0T/MHr0A+dyH45VKfsrj13rMFVnkE=</dsig:DigestValue>
</hash>
</file>

Lösche ich alle Einträge bis auf einen:

Microsoft.Data.SqlClient.SNI.x64.dll

funktioniert alles.

Die Frage ist nun: Wie kommen diese Einträge (und so viele) in die Manifest Datei?

09.09.2020 - 16:05 Uhr

Wäre praktisch gewesen, wenn Du Dich mit den Breaking Changes von EF Core 3 beschäftigt hättest, bevor Du upgradest.

Ja-haaaa 😃

EFCore 3 arbeitet nicht mehr mit System.Data.SqlClient sondern mit Microsoft.Data.SqlClient.
Daher muss entsprechendes Paket ersetzt werden; dann ist auch der Fehler weg.

Ja.

Tipp: beachte den Migrationspfad und die Empfehlungen.
Ist alles vom EF Team sauber dokumentiert 😉

Yes.

09.09.2020 - 15:26 Uhr

Es hat sich erledigt.

09.09.2020 - 15:08 Uhr

verwendetes Datenbanksystem: MSSql

Hallo Gemeinde, mal wieder was kurioses.
In meiner .NET Framework 4.7.2 Anwendung EFCore implementiert.
Das Lief mit EfCore 2.4 perfekt.
Habe nun auf EfCore 3.1.8. geupdatet.

Als erstes musste ich AsQueryable() einbauen, da .where in EfCore und Linq implementiert ist.
Alles lässt sich wunderbar kompilieren

Teste ich nun eine Methode, erhalte ich beim Aufruf einer Abfrage wie z.B.

weiche = Context.NlWeiche.AsQueryable().Where(w => w.Id == 2).Single();

Folgende Fehlermeldungen:> Fehlermeldung:

Der Typeninitialisierer für "Microsoft.Data.SqlClient.TdsParser" hat eine Ausnahme verursacht.

Fehlermeldung:
Die DLL "Microsoft.Data.SqlClient.SNI.x86.dll": Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.

Fehlermeldung:
bei Microsoft.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous)
bei Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
bei Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
bei Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, ServerCertificateValidationCallback serverCallback, ClientCertificateRetrievalCallback clientCallback, DbConnectionPool pool, String accessToken, SqlClientOriginalNetworkAddressInfo originalNetworkAddressInfo, Boolean applyTransientFaultHandling)
bei Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
bei Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
bei Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
bei Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
bei Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
bei Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal&amp; connection) bei Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
bei Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) bei Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
bei Microsoft.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource1 retry) bei Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry, SqlConnectionOverrides overrides)
bei Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)
bei Microsoft.Data.SqlClient.SqlConnection.Open()
bei Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
bei Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
bei Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject)
bei Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable1.Enumerator.InitializeReader(DbContext _, Boolean result) bei Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func3 operation, Func3 verifySucceeded) bei Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable1.Enumerator.MoveNext()
bei System.Linq.Enumerable.Single[TSource](IEnumerable1 source) bei Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query) bei Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression) bei System.Linq.Queryable.Single[TSource](IQueryable1 source)
bei .........RepWagen.cs: Zeile51

Die Meldung verstehe ich nicht...
Die Suche nach SNI.x86.dll hilft irgendwie auch nicht weiter...

Hat jemand ein Idee?

08.09.2020 - 15:31 Uhr

Es ist ein .NET Framework 4.7.2 Projekt.

08.09.2020 - 14:24 Uhr

Jetzt geht es.
Ich habe den vorhandenen Test gelöscht und durch VS neu erstellen lassen.
Auf eine Funktion => Komponententest erstellen.
Da hat VS wohl dann die richtigen DLL's verlinkt.

Die Microsoft.NET.Test.Sdk ist nicht im Projekt vorhanden.

Herzlichen Dank Abt!

08.09.2020 - 13:53 Uhr

Vielen Dank,

die Konsole spuckt folgendes aus:> Fehlermeldung:

Insgesamt 1 Testdateien stimmten mit dem angegebenen Muster überein.
Microsoft.VisualStudio.TestPlatform.ObjectModel.SettingsException: Fehler beim Laden der Laufzeiteinstellungen. Fehler: Die Datei oder Assembly "Microsoft.VisualStudio.TestPlatform.Common.resources, Version=15.0.0.0, Culture=de-DE, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden. ---> System.IO.FileNotFoundException: Die Datei oder Assembly "Microsoft.VisualStudio.TestPlatform.Common.resources, Version=15.0.0.0, Culture=de-DE, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden. ---> System.IO.FileNotFoundException: Die Datei oder Assembly "Microsoft.VisualStudio.TestPlatform.Common.resources, Version=15.0.0.0, Culture=de-DE, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
bei System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
bei System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
bei System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
bei System.Reflection.Assembly.Load(AssemblyName assemblyRef)
bei Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginCache.CurrentDomainAssemblyResolve(Object sender, AssemblyResolveEventArgs args)
bei Microsoft.VisualStudio.TestPlatform.PlatformAbstractions.PlatformAssemblyResolver.AssemblyResolverEvent(Object sender, Object eventArgs)
bei System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
bei System.Reflection.RuntimeAssembly.InternalGetSatelliteAssembly(String name, CultureInfo culture, Version version, Boolean throwOnFileNotFound, StackCrawlMark& stackMark)
bei System.Resources.ManifestBasedResourceGroveler.GetSatelliteAssembly(CultureInfo lookForCulture, StackCrawlMark& stackMark)
bei System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackCrawlMark&amp; stackMark) bei System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture, Boolean createIfNotExists, Boolean tryParents, StackCrawlMark&amp; stackMark) bei System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents) bei System.Resources.ResourceManager.GetString(String name, CultureInfo culture) bei Microsoft.VisualStudio.TestPlatform.Common.Resources.Resources.get_FailedToLoadAdapaterFile() bei Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginDiscoverer.GetTestExtensionsFromFiles[TPluginInfo,TExtension](String[] files, Dictionary2 pluginInfos)
bei Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginDiscoverer.GetTestExtensionsInformation[TPluginInfo,TExtension](IEnumerable1 extensionPaths) bei Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginCache.GetTestExtensions[TPluginInfo,TExtension](IEnumerable1 extensionPaths)
bei Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginCache.DiscoverTestExtensions[TPluginInfo,TExtension](String endsWithPattern)
bei Microsoft.VisualStudio.TestPlatform.Common.SettingsProvider.SettingsProviderExtensionManager.Create()
bei Microsoft.VisualStudio.TestPlatform.Common.RunSettings.ReadRunSettings(XmlReader reader)
--- Ende der internen Ausnahmestapelüberwachung ---
bei Microsoft.VisualStudio.TestPlatform.Common.RunSettings.ReadRunSettings(XmlReader reader)
bei Microsoft.VisualStudio.TestPlatform.Common.RunSettings.InitializeSettingsProviders(String settings)
bei Microsoft.VisualStudio.TestPlatform.Common.Utilities.RunSettingsUtilities.CreateAndInitializeRunSettings(String settingsXml)
bei Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution.BaseRunTests.SetContext()
bei Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Execution.ExecutionManager.StartTestRun(Dictionary`2 adapterSourceMap, String package, String runSettings, TestExecutionContext testExecutionContext, ITestCaseEventsHandler testCaseEventsHandler, ITestRunEventsHandler runEventsHandler)

Testlauf abgebrochen.

Microsoft.VisualStudio.TestPlatform.Common.resources, Version=15.0.0.0 wird also nicht gefunden.
Die finde ich aber bei Nuget auch nicht...

08.09.2020 - 12:33 Uhr

Guten Tag zusammen,

nach einer PC-und Visual Studio 2019 Neuinstallation lassen sich meine Unittests nicht mehr ausführen.
Zwar kann ich im Test Explorer den Test anklicken und debuggen.
Aber dieser startet dann einfach nicht und es kommt keinerlei Fehlermeldung, außer das hellblaue Ausrufezeichen: Nicht ausgeführt.

MsTest.Testadapter und MSTest.TestFramework sind installiert.

Google konnte leider nicht weiterhelfen.

Die Projektorder sind diesselben, es muss also irgendwie an Visual Studio liegen?

09.06.2020 - 08:58 Uhr

Vielen Dank.
Habe Bindings gekillt und komplett alles neu hergestellt.
Selbe Meldung.

Trotzdem müsste es doch mit der Umleitung funktionieren?

Edit:
Es geht nun.
In einer referenzierten DLL war Version 6.0.0. vorhanden, nach der wurde gesucht.
Das ist mir auch schon klar, aber dafür gibt es ja die Umleitungen??

08.06.2020 - 16:16 Uhr

Hallo zusammen,

eigentlilch dachte ich, dass ich es kapiert hätte.
Dem ist aber leider nicht der Fall.

In meiner Webanwendung (ASP.NET 472)kommt beim Start die Meldung:> Fehlermeldung:

Die Datei oder Assembly "Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" oder eine Abhängigkeit davon wurde nicht gefunden. Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein. (Ausnahme von HRESULT: 0x80131040)

Der Fehler sei in der global.asax, welche seit Jahren nicht verändert wurde.


 protected void Application_Start() {

            DevExtremeBundleConfig.RegisterBundles(BundleTable.Bundles);
            AreaRegistration.RegisterAllAreas();
            BundleConfig.RegisterBundles(BundleTable.Bundles);


            GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize;
            GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);


            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            
            ModelBinders.Binders.DefaultBinder = new DevExpress.Web.Mvc.DevExpressEditorsBinder();

            DevExpress.Web.ASPxWebControl.CallbackError += Application_Error;

          
   =>> nächste Zeile soll der Fehler sein:
     }

In der web.config ist eine Umleitung drin:


 <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="12.0.2.0" />
      </dependentAssembly>

Was ich verändert habe?
Keinen blassen Schimmer!
Trotzdem komme ich nicht dahinter, was ich denn noch tun kann?
Derartige Probleme habe ich mit den Umleitungen umgangen.
Wer oder was nun unbedingt Version 6.0.0. will kann ich nicht sagen.

Internet habe ich schon durchforstet, reinstall etc. bringt nichts.

Auf die Gefahr hin, dass ich eine auf die Mütze kriege:
Was läuft hier falsch?

Danke im Voraus 😃

21.02.2020 - 11:09 Uhr

Ok, vielen Dank.
Das verstehe ich zwar nicht, aber ich nehme es hin wie es ist.
Ich meine - was ist wenn ich einfach eine fertige Datenbank habe und diese nutzen möchte...?

21.02.2020 - 09:37 Uhr

Also ich habe nun im DbContext das DbSet und die Klasse an sich manuell hinzugefügt..
so geht's zumindest.

21.02.2020 - 08:35 Uhr

verwendetes Datenbanksystem: MSSQL

Guten Morgen.

In meiner .Net Core 3.1 habe ich per Database First meine Models anlegen lassen.

dotnet ef dbcontext scaffold ...

Funktionierte prima und ich kann in die Datenbank schreiben und lesen.
Das war vor ca. 14 Tagen.

Heute geht es nicht mehr, obwohl ich kein Änderungen gemacht hatte.
In der DB habe ich eine neue Tabelle angelegt und wollte diese nun einfügen.

Bei Ausführen des Befehls kommt leider immer nur> Fehlermeldung:

Build failed

Ich kann aber das Projekt und die komplette Projektmappe problemlos erstellen.
Es kommen auch keine Fehler oder sonst etwas.
Alle benötigten DLL's sind vorhanden.
Alle EF DLLs sind aktuell.

Also exakt dasselbe wie vor 14 Tagen, keine Änderung, aber geht nicht mehr.

Kennt jemand hierfür eine Lösung?

13.02.2020 - 12:17 Uhr

Die Erfahrung habe ich nun gemacht 😃
Vielen Dank.

13.02.2020 - 11:41 Uhr

Ja, alles brav über nuget.

Habe es aber schon gelöst.

Ich habe EntityFramework.Core 2.2.4. installiert, welches anscheinen zwingend System.Interactive.Async 3.2.0 benötigt.

System.Interactive.Async habe ich auf 4.0.0 geupdatet, EFCore blieb bei 2.2.4
Da dies offensichtlich nicht zusammenpasst, kam o.G. Meldung.

Also entweder EFCore 2.2.4 und System.I.Async 3.2.0 oder beides updaten, obwohl bei Abhängigkeiten bei EFCore 2.2.4 steht:

System.Interactive.Async (≥ 3.2.0)

13.02.2020 - 10:45 Uhr

Hallo zusammen,

ich hoffe, dass ich hier richtig bin.
Folgende Struktur habe ich :

ASP.NET Anwendung, .NET4.7.2
In einem Controller wird eine Funktion aufgerufen, welche in einer verwiesenen DLL vorhanden ist.
Diese basiert ebenfalls auf .NET 4.7.2
Diese wiederum bindet eine weitere DLL ein.
Wie alle anderen basiert diese auf .NET 4.7.2

Alle drei verbundenen Komponenten verweisen durchgehend auf System.Interactive.Async 4.0.0.0

Trotzdem bekomme ich bei Aufruf der Funktion im Controller folgende Meldung:> Fehlermeldung:

Der Typ "System.Collections.Generic.IAsyncEnumerable`1" in der Assembly "System.Interactive.Async, Version=4.0.0.0, Culture=neutral, PublicKeyToken=94bc3704cddfc263" konnte nicht geladen werden.

Es ist nirgends ein bindingRedirect vorhanden.

Die Meldung heißt meines Erachtens auch, dass die System.Interactive.Async gefunden wird, aber darin wird was nicht gefunden.

Lässt sich hier ein Fehler erkennen?

Vielen Dank im Voraus

04.02.2020 - 15:13 Uhr

Lösung:

zwar verstehe ich es nicht, aber ich musste vorher die Daten noch zu Json umwandeln:


 resJson = new StringContent(content: JsonConvert.SerializeObject(data),
                            encoding: Encoding.UTF8,
                            mediaType: "application/json");

03.02.2020 - 17:36 Uhr

Also am FromBody liegt es nicht.
Übergabe, d.h. value = null.

Dann muss es daran liegen, dass ich von einem Webservice aus einen anderen Webservice aufrufe?
Irgendwas mit Threads?

03.02.2020 - 17:14 Uhr

Hallo zusammen,

schon 1000 mal berührt, tausend mal hat's geklappt.
Nun hat's Zoom gemacht.

Doch zur Sache:
Ich habe eine kleine .NET Core 3.0 WebApi Anwendung.

Hier gibt es im Controller eine Funktion, welche einen anderen WebService aufruft.
Das ganze wird mit dem Postman getestet und die Daten werden auch korrekt übergeben.

Der Controller sieht so aus:


 [Route("api/[controller]")]
    [ApiController]
    public class SapRueckmeldungsController : ControllerBase
    {
....
...
....
 [HttpPost]
        [Route("CheckRueckmeldung")]

        public  ActionResult<SapRueckmeldung> CheckRueckmeldung(SapWriteData data)
        {


data ist korrekt gefüllt.
In diesem ist dann folgende Funktion:

 

HttpClient client = new HttpClient
            {
                BaseAddress = _baseAdress
            };

            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            HttpResponseMessage response = client.PostAsJsonAsync(_extension, data).Result;

In der letzten Zeile, die Variable data ist gefüllt und stellt ein Model "SapWriteData" dar.

Diese Webanwendung wird damit aufgerufen:


   public IHttpActionResult GetColorNew([FromBody]SapWriteData value)

Value ist hier aber immer null und das ist das Problem.

Kann es am "FromBody" liegen?
Eigentlich ja nicht, denn diese Funktion und andere rufe ich auf exakt dieselbe Weise ziemlich oft in anderen Funktionen in anderen Projekten auf.

Woran könnte das dann liegen?

11.12.2019 - 14:30 Uhr

... dass es nie eine gute Idee ist blind NuGet Updates durchzuführen 😉

Das auch 😃

Und das hier war bei mir die Lösung:
Visual Studio 2015 Build errors - The “Csc” task could not be initialized with its input parameters

11.12.2019 - 12:38 Uhr

Hellöle zusammen.

In einem .NET 4.8 Asp.Net Projekt habe ich per Nuget Paket Manager sämtliche Updates gemacht.
Scheint alles geklappt zu haben...oder doch nicht?

Seit dem kommen jedenfalls beim Neu erstellen folgende Fehler:> Fehlermeldung:

Fehler Die "Csc"-Aufgabe konnte nicht mit ihren Eingabeparametern initialisiert werden. KnollSvr C:\PFAD...\packages\Microsoft.Net.Compilers.3.4.0\tools\Microsoft.CSharp.Core.targets 59

und

Fehlermeldung:

Fehler Der "AnalyzerConfigFiles"-Parameter wird von der "Csc"-Aufgabe nicht unterstützt. Vergewissern Sie sich, dass der Parameter in der Aufgabe vorhanden ist und es sich um eine festlegbare öffentliche Instanzeigenschaft handelt. C:...gleicherPfad\Microsoft.CSharp.Core.targets 64

Was kann das bedeuten?

25.11.2019 - 09:46 Uhr

Es war die Option "Nur eigener Code aktivieren" aktiviert.

MS: nur eigenen Code aktivieren

25.11.2019 - 09:21 Uhr

Hallo zusammen,

ich habe Projekt A, welches eine DLL bereitstellt und Projekt B, welches eine .NET Windows Anwendung ist.
Projekt B verweist auf A.dll und implementiert Funktionen von A.

Diese konnte ich bisher immer prima debuggen.
D.h. mit F11 springe ich in die A.Funktion() und schaue mal so was da so abgeht.

Seit kurzem geht das nicht mehr, da offensichtlich die Symbole für A.pdb nicht geladen wurden.
Schaue ich während dem Debuggen in das Module Fenster, sehe ich, dass das Laden der Symbole übersprungen wurde.

Unter Erweiterungen-...-Debuggen habe ich den Pfad für Projekt A angegeben.
Lade ich sie manuell, dann werden sie geladen, kann aber trotzdem nicht in die Funktionen springen.

Was mache ich hier denn falsch?

vielen Dank

04.11.2019 - 08:38 Uhr

Hallo liebe Community,

von Druckertreibern habe ich bisher keine Ahnung.

Trotzdem möchte ich vom Thermodrucker DNP DS620 einige Daten auslesen.
Das ist ein Thermosublimationsdrucker bei dem im Druckertreiber genau angezeigt wird, wieviele restliche Ausdrucke noch vorhanden sind.
Diese Info möchte ich mit einem Progrämmchen auslesen.

Bestenfalls geht das mit .NET Core 3.0, damit das zumindest auch auf OSX läuft.

Da ich, wie gesagt, keine Ahnung habe, wollte ich im Voraus die Profis an der Stelle fragen:

Ist das generell möglich?
Muss man dafür nach einem speziellen SDK für den Drucker schauen?
Gibt es spezielle Klassen in Core 3.0 dafür?

Vielen Dank im Voraus.

18.10.2019 - 12:08 Uhr

Wie immer sehr fundierte und aufschlußreiche Antwort vom Abt.
Herzlichen Dank!

18.10.2019 - 06:46 Uhr

Ja, das was noch vor der Umstellung. Inzwischen ist das Projekt auf https, auch die ajax Aufrufe.
@Abt:
Das mit den DLL's habe ich nun im Griff (anderen Post), aber das CORS ein reines Browserthema ist, wusste ich tatsächlich nicht.
Trotzdem kann ich auf dem Server CORS aktivieren, was dann Einfluss hat...muss mich doch mal noch genauer belesen...

Zitat aus dem Wikipedia Artikel:

Ein Beispiel: Eine HTML-Seite wird von einem Server über die Domain
>
bereitgestellt. Die Seite enthält ein Script, welches eine Ressource (zum Beispiel ein Bild) nachlädt, dessen URL auf einen anderen Server verweist, bspw.
>
. Somit handelt es sich um einen Cross-Origin-Request.[2]

Wenn der Webserver hinter der zweiten Domain kein CORS unterstützt, dann verbietet er den Zugriff auf die Ressource und der Client kann darauf nicht zugreifen.

Vielen herzlichen Dank an alle.

17.10.2019 - 17:22 Uhr

Hi,
die Doku hatte ich schon fast komplett gelesen.
Hatte vorher aber nichts genützt.

Auf https ist bereits umgestellt!

Vielen Dank.

17.10.2019 - 14:49 Uhr

Es geht nun, ich schreibe später die Lösung hier rein.

Also eigentlich habe ich keine Ahnung, was das Problem war.
Ich vermute aber, dass es irgendwas mit https zu tun hatte, denn oben sieht man, dass immer auf https:// zugegriffen werden will.

...from origin 'https://localhost:44315' ...

Ich habe dann den WebService komplett neu erstellt, bewusst ohne https-Unterstützung.

Beim lokalen Test bin ich nach dem hier vorgegangen:
Enable Cors in ASP.NET

Ohne diese Einstellungen geht es mit dem lokalen Test (IIS Express) nicht.
Auf dem Produktiv Server (IIS) interessiert es gar nicht...

Falls es interessiert, mein Test-Javascript sieht nun so aus:

 var data =
            '{ "Modul"	: "Modulname", "PersNr":"123456789","AbschlussDatum":"2014-01-01T23:28:56Z","Bemerkung":"Testeintrag"}';
                var request =
                {
                headers: { 
                'Accept': 'application/json',
                'Content-Type': 'application/json' 
                },
            "async": true,
            "type" :"POST", 
            "url":"http://meinserver:8089/api/ELearnings",    
            "data" :data
            }
         $.ajax(request)
             .done(function (ergebnis) {
                 console.log(ergebnis);
         })
             .fail(function (errMsg) {
                 console.error(errMsg); 
         })

Vielen Dank für die Hilfe.

17.10.2019 - 12:24 Uhr

Habe mal einen anderen Aufruf versucht, mit GET:


const uri = 'http://localhost:52373/api/SetELearnings/6';

                        fetch(uri, { mode: 'cors' })
            .then(response => response.json())
  .then(data =>console.log(data))
            .catch(error => console.error('Unable to get items.', error));


Der Response Header sieht so aus

General:
Request URL:
>

Request Method: GET
Status Code: 200 OK
Remote Address: [::1]:52373
Referrer Policy: no-referrer-when-downgrade

Request Headers:
Provisional headers are shown
Origin: null
User-Agent: *** User Agent

Der Aufruf vom Postman:



var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "http://localhost:52373/api/SetELearnings/6");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("User-Agent", "PostmanRuntime/7.18.0");
xhr.setRequestHeader("Accept", "*/*");
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.setRequestHeader("Postman-Token", "b9c8ef27-12a0-443f-9b5c-5156cd563972,039c90a0-05a9-41ea-9a23-c9f72b430835");
xhr.setRequestHeader("Host", "localhost:52373");
xhr.setRequestHeader("Accept-Encoding", "gzip, deflate");
xhr.setRequestHeader("Connection", "keep-alive");
xhr.setRequestHeader("cache-control", "no-cache");

xhr.send(data);



Der Response Header vom Postman:

Transfer-Encoding: chunked
Content-Type: application/json: charset=utf8
Server: Microsoft-IIS/10.0
x-Powered-By: ASP.NET
Date: das aktuelle Datum