部署到本地IIS服务器时找不到/ signalr / hubs 404,可在IIS express + signalr 1.0上运行

时间:2019-11-21 23:42:05

标签: asp.net iis signalr signalr-hub

我正在ASP.net上编写一个angularJS单页应用程序,使用signalR与Windows Server上托管的服务器进行通信。它可以通过Visual Studio在IIS Express上完美运行,但是在部署到本地IIS(10.0)上时无法正常工作。我已经尝试解决此问题已有两天了,但是我绝对没有解决任何问题。我也使用生成的中心代理。这是我尝试过的:

-已安装的ASP.net

-确保Windows Server上已安装所有IIS / .NET功能

-确认应用程序池已集成.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。

1 个答案:

答案 0 :(得分:0)

已解决: 列出了我的目录结构,以便IIS指向一个名为“网站”的文件夹,并且在该文件夹中,我有用于不同Web应用程序的子目录。当应用程序位于这些子目录之一中时,打开网站时不会调用startup.cs。因此,我需要更改代码,以便单页应用程序仅位于“网站”文件夹中,并可以路由到单独的应用程序。