3 messaggi dal 05 giugno 2019
Salve scusatemi sono nuovo a questa tipologia , Signalr ne ho solo letto un po le critiche. Ho un piccolo sito che sto facendo e mi sarebbe piaciuto mettere una chat molto minimalista .
Ieri allora ho provato semplicemente l'esempio di Microsoft . Il sito e' scritto in ASP.NET ma non mvc o core .L'esempio e' il seguente

https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr

quindi in realta' sovrebbe essere basico e semplice . In locale tutto bene , l'ho provato e fa quello che deve . Online invece non fa assolutamente nulla .
Potreste , se avete tempo , spiegarmi magari se il prog e' solo eseguibile in locale o no ? se si cosa dovrei fare per fare una prova minima per sperimentare Signalr per costruire una chat ? Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao e benvenuto nel forum!


Online invece non fa assolutamente nulla .

Online dove, su Aruba?
Apri gli strumenti di sviluppo del tuo browser (tasto F12) e vai nella scheda Console. Vedi apparire errori?

ciao,
Moreno

Enjoy learning and just keep making
3 messaggi dal 05 giugno 2019
wau che risposta immediata , grazie fantastico. In effetti non ho mai frequentato le Community ma gia' mi piacciono.
Allora si il sito su Aruba, che poi non ho capito se supporta MVC e Core ma vabe poi ho iniziato senza e quindi proseguo cosi.
Allora , prima di tutto grazie di avermi detto che deve funzionare online il che mi toglie il primo dubbio . Negli errori con l' F12 in Chrome , mi da quanto segue:

Failed to load resource: the server responded with a status of 500 (Internal Server Error) Default: 27
Default.html:34 Uncaught TypeError: Cannot read property 'client' of undefined
at HTMLDocument.<anonymous> (Default.html:34)
at Object.resolveWith (jquery-1.6.4.min.js:2)
at Function.ready (jquery-1.6.4.min.js:2)
at HTMLDocument.C (jquery-1.6.4.min.js:2)

Grazie di nuovo per il supporto.
Modificato da magui il 06 giugno 2019 01:39 - Default.html :

<!DOCTYPE html>
<html>
<head>
<title>SignalR Simple Chat</title>
<style type="text/css">
.container {
background-color: #99CCFF;
border: thick solid #808080;
padding: 20px;
margin: 20px;
}
</style>
</head>
<body>
<div class="container">
<input type="text" id="message" />
<input type="button" id="sendmessage" value="Send" />
<input type="hidden" id="displayname" />
<ul id="discussion"></ul>
</div>
<!--Script references. -->
<!--Reference the jQuery library. -->
<script src="/Scripts/jquery-1.6.4.min.js" "></script>
<!--Reference the SignalR library. -->
<script src="/Scripts/jquery.signalR-2.0.0.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="/signalr/hubs"></script>-------------------------------------------questa e' la linea 27
<!--Add script to update the page and send messages.-->
<script type="text/javascript">
$(function () {
// Declare a proxy to reference the hub.
var chat = $.connection.chatHub;
// Create a function that the hub can call to broadcast messages.
chat.client.broadcastMessage = function (name, message) {--------------questa e' la linea 34
// Html encode display name and message.
var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text(message).html();
// Add the message to the page.
$('#discussion').append('<li><strong>' + encodedName
+ '</strong>:&nbsp;&nbsp;' + encodedMsg + '</li>');
};
// Get the user name and store it to prepend to messages.
$('#displayname').val(prompt('Enter your name:', ''));
// Set initial focus to message input box.
$('#message').focus();
// Start the connection.
$.connection.hub.start().done(function () {
$('#sendmessage').click(function () {
// Call the Send method on the hub.
chat.server.send($('#displayname').val(), $('#message').val());
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
});
});
</script>
</body>
</html>

Startup.cs :

using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}

ChatHub.cs :

using System;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRChat
{
public class ChatHub : Hub
{
public void Send(string name, string message)
{
// Call the broadcastMessage method to update clients.
Clients.All.broadcastMessage(name, message);
}
}
}

i file li ho scaricati direttamente dal sito microsoft in formatto zippato , unzippati e aperti in VS 2017 , in locale tutto ok , sul Server non parte ovvero visualizza la pagina ma le azioni che dovrebbe intraprendere sono completamente zero .
Grazie


Modificato da magui il 06 giugno 2019 01:46 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, prego!


Allora si il sito su Aruba, che poi non ho capito se supporta MVC e Core

Core non è supportato. MVC è supportato ma con dei grossi asterischi di fianco.
Leggi qui, abbiamo affrontato la cosa in queste discussioni. Probabilmente dovrai chiedere all'assistenza di passare al "Full Trust". Ti faranno firmare un'assunzione di responsabilità.

https://forum.aspitalia.com/forum/post/413538/Security-Exception-Sito-Web-Hosting-Condiviso.aspx
http://forum.aspitalia.com/forum/post/419115/Problema-Hello-World-Publish.aspx

A proposito dell'errore che hai rilevato:


Failed to load resource: the server responded with a status of 500 (Internal Server Error) Default: 27

Si verifica nel caricamento dell'URL www.tuosito.it/signalr/hubs che espone il codice javascript per invocare gli hub. Senza quello, gli hub non possono essere invocati da javascript. Se vuoi vedere che errore si sta verificando, puoi incollare quell'URL nella barra degli indirizzi del browser e vedere cosa appare.
Se ti appare un errore generico che non chiarisce nulla, allora imposta questo nel web.config e ripubblica l'applicazione.
 <system.web>
    <customErrors mode="Off"/>
  </system.web>


È molto probabile che l'errore che salterà fuori sia una SecurityException descritta nelle discussioni che ti ho linkato.

ciao,
Moreno

Enjoy learning and just keep making
3 messaggi dal 05 giugno 2019
ciao moreno allora credo di aver risolto .
1) In effetti Aruba ha due modalita' IIS di tipo fino a 7 e oltre 8 e si ha bisogno dell'8 e superiore. Ovvero in Aruba , entrare nel "pannello di controllo" > Hosting Windows > ASP.NET . Dove e' scritto "Modalita Pipeline" scegliere dalla drop-down list il tipo "Integrated" . Questo abilita iis8 e superiore e la comunicazione a due vie.

2) In effetti il codice che e' messo a disposizione da Microsoft manca della classe Global.asax che invece e' necessaria in fase di Distribuzione ma non evidentemente quando l'esercitazione viene fatta partire in locale .
Quindi una volta scaricato il file dal sito Microsoft e unzippato per poi pubblicarlo bisogna prima aggiungere un file Global.asax alla root senza modificare il suo contenuto , semplicemente come viene creato da VS. A quel punto , o almeno per me , una volta pubblicato si comporta allo stesso modo che in locale.


Grazie dei tuoi consigli e del tuo interessamento .
Abbraccione e alla prossima :)
Modificato da magui il 06 giugno 2019 21:09 -
Modificato da magui il 06 giugno 2019 21:09 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Perfetto  Grazie per aver condiviso la soluzione!

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.