【发布时间】:2019-11-21 23:42:05
【问题描述】:
我正在 ASP.net 上编写一个 angularJS 单页应用程序,使用 signalR 与托管在 Windows Server 上的服务器进行通信。它通过 Visual Studio 在 IIS Express 上完美运行,但在部署到本地 IIS (10.0) 时无法运行。我已经尝试解决这个问题两天了,但我完全无处可去。我还使用生成的集线器代理。这是我尝试过的:
-已安装 ASP.net
-确保所有 IIS/.NET 功能都安装在 Windows Server 上
-验证应用程序池是 .net 4.0 集成的
这是我的创业课程:
using System;
using System.Threading.Tasks;
using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Quoting.Startup))]
namespace Quoting
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
var hubConfiguration = new HubConfiguration();
hubConfiguration.EnableDetailedErrors = true;
hubConfiguration.EnableJavaScriptProxies = true;
app.MapSignalR();
System.Diagnostics.Debug.WriteLine("SignalR Mapped");
}
}
}
我已经尝试了以下每一个,加上旧版本 MVC 的所有可能组合,这不是我在编程中使用的......
<script src="/signalr/hubs"></script>
<script src="~/signalr/hubs"></script>
<script src="signalr/hubs"></script>
<script src="/hubs"></script>
<script src=".../signalr/hubs"></script>
<script src="{{appname}}/signalr/hubs"></script>
我的 web.config 中有这个:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
</modules>
</system.webServer>
jquery:
<script src="Scripts/jquery-3.4.1.js"></script>
<script src="Scripts/jquery.signalR-2.4.1.min.js"></script>
<script src="Scripts/jquery.signalR-2.4.1.js"></script>
<script src="/signalr/hubs"></script> //note: this is what works on IIS express
我很迷茫。当我在浏览器中输入“localhost:port/signalr/hubs”时,我在 IIS express 上得到响应。但是,对我的域执行此操作时,'{domainname}/directory/signalr/hubs' 得到 404 未找到,并且我能想到的每个组合也将返回 404。
【问题讨论】:
-
能否请您发布 IIS Web 应用程序文件夹目录?为什么需要使用 {domainname}/directory/signalr/hubsuse'?由于“/signalr/hubs”表示根文件夹的signlar/hubs文件夹,你将面临404错误。如果您的应用程序位于文件夹中,则应使用“/directory/signalr/hubs”。
-
当然,IIS 只指向一个文件夹,该文件夹内还有其他几个目录,其中一个是“Supervisor”。所以尝试 Supervisor/signalr/hubs 是行不通的。我会尝试添加主目录。附带说明一下,当我在 Visual Studio 上发布应用程序时,它不会添加 OWIN startup.cs 文件或任何内容,即使它包含在项目中也是如此。我尝试添加它,但它什么也没做,我担心它可能会以不同的方式调用 start。
-
此外,找到了 Jquery signalR 脚本,调用的目录结构看起来与在 Visual Studio 中运行时的预期一样。
标签: asp.net iis signalr signalr-hub