Signalr/Hub未在IIS 7中加载,但在Visual Studio中正常工作

PCa*_*nde 25 c# iis iis-7 signalr signalr-hub

我正在使用SignalR的Asp .Net 4.0框架上的Web应用程序,从Nuget包安装它.当我调试或运行应用程序而不在本地调试时,它可以正常工作.但是,当它部署到生产服务器时,它无法找到signal/hubs动态注入httphandlers的文件.由于它的动态特性,它必须在运行中创建,因此我不能将工作文件复制到项目中.

我尝试了以下加载文件的方法:

<script src="/signalr/hubs" type="text/javascript"></script>
<script src="signalr/hubs" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

并在代码背后:

ScriptManager.GetCurrent(Page).Scripts.Add(new ScriptReference("~/signalr/hubs"));
Run Code Online (Sandbox Code Playgroud)

所有这些都在本地工作,但不在服务器上.在html中呈现的路径看起来是正确的,但那里没有文件,传递404错误.如果重要,服务器已将应用程序设置为完全信任,并且该应用程序将作为IIS中使用子域的另一个站点下的应用程序运行.

PCa*_*nde 30

通过在web.config中设置以下标志解决了该问题.

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
        </modules>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,Nuget没有为Elmah或SignalR设置这些值

  • 啊,是的,RAMFAR :). (3认同)

Gir*_*are 9

我正面临着类似的问题,我只是改变了/signalr/hubs/virtualDirectoryName/signalr/hubs和它的工作.