C# 在azure上部署后信号器不工作。在本地主机上工作
因此,如果部署后出现此错误。当我在本地主机上运行时,位于localhost/Home/chat上的聊天页面可以正常打开,但当我尝试打开它时,状态代码为500C# 在azure上部署后信号器不工作。在本地主机上工作,c#,sql-server,asp.net-mvc,azure,signalr,C#,Sql Server,Asp.net Mvc,Azure,Signalr,因此,如果部署后出现此错误。当我在本地主机上运行时,位于localhost/Home/chat上的聊天页面可以正常打开,但当我尝试打开它时,状态代码为500 app.UseEndpoints( endpoints => { endpoints.MapHub<SignalRChatHub>("/chat"); en
app.UseEndpoints(
endpoints =>
{
endpoints.MapHub<SignalRChatHub>("/chat");
endpoints.MapControllerRoute("areaRoute", "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
我怀疑它与连接字符串有关,这是从db获取dafault连接,而不是从Azure db获取的连接。但我不知道如何修复…好了,开始吧!第一个问题是azure中的环境变量设置为生产,这就是为什么该错误看起来像是更改了azure中的ASPNETCORE_环境、AppService、配置和应用程序设置。从生产到开发,出现了更方便的错误。错误是它找不到视图。我在它搜索的文件夹中有视图,但它不工作。修复方法是右键单击视图并将生成操作更改为内容。这解决了我的问题。您提供的图片中的错误消息非常清楚,说明了问题的原因。部署时,需要设置环境变量。环境变量设置为生产。我不知道下一步该怎么做从cmd.exe使用>设置,它将给出所有的环境变量和值。从windows中的开始按钮键入ENVIRON和get实用程序以设置用户变量。
<script>
var connection =
new signalR.HubConnectionBuilder()
.withUrl("https://myurl.azurewebsites.net/Home/Chat")
.build();
connection.on("NewMessage",
function (message) {
var chatInfo = `<div style="color:black;text-align:center;font-size: 25px">${message.user} says : ${escapeHtml(message.text)}</div>`;
$("#messagesList").append(chatInfo);
});
public IActionResult Chat()
{
return this.View();
}