【发布时间】:2021-03-25 23:52:08
【问题描述】:
所以如果在部署后出现此错误。当我在本地主机上运行时,位于 localhost/Home/Chat 上的聊天页面可以正常打开,但是当我尝试打开 azurewebsites.net 时,我得到状态代码 500
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();
});
这些是我在启动时的端点。
这就是视图中的JS
<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);
});
我用我的网址替换了 WithUrl(我没有在这里发布它,因为它还没有准备好 :D)但仍然没有
那是我的家庭控制器
public IActionResult Chat()
{
return this.View();
}
我怀疑它与连接字符串有关,即从数据库获取默认连接,而不是从 Azure 数据库获取默认连接。但是不知道怎么解决...
【问题讨论】:
-
您提供的图片中的错误消息非常清楚导致问题的原因。部署时需要设置环境变量。
-
环境变量设置为生产。我不明白下一步该怎么做
-
从 cmd.exe 使用 >Set 将提供所有环境变量和值。从 Windows 中的开始按钮键入 ENVIRON 并获取实用程序来设置用户变量。
标签: c# sql-server asp.net-mvc azure signalr