2016-05-12 2 views
0

Ich arbeite an einer Anwendung, die ASP.NET-Web-API, SignalR und AngularJS verwendet. Ui-Router wird verwendet und html5 Modus ist aktiviert.Kann Signal-Hubs-Datei nicht korrekt laden, nachdem IIS neu geschrieben

ich die web.config-Datei und die Rewrite-Regel bearbeitet haben, ist wie folgt:

<rule name="AngularJS Routes" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      <add input="{REQUEST_URI}" matchType="Pattern" pattern="api/(.*)" negate="true" /> 
      <add input="{REQUEST_URI}" matchType="Pattern" pattern="signalr/(.*)" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="/" /> 
</rule> 

Alles funktioniert gut in Visual Studio localhost und die automatisch generierten signalr Naben-Datei erfolgreich geladen wird.

Das Problem ist, wenn ich die Anwendung auf dem Server (Windows Server 2008 R2) eingesetzt, und die Anwendung auszuführen, <script src="signalr/hubs"></script> die Anforderung Hub keep Datei signalr mich Senden index.html zurück als Antwort, die ich der Grund denke möglicherweise ist diese Zeile von Code <add input="{REQUEST_URI}" matchType="Pattern" pattern="signalr/(.*)" negate="true" /> nicht richtig funktioniert, so wird die Anfrage in der Root-URL neu geschrieben.

Ich habe versucht, das Muster zu ändern, um "~/signalr /(.*)", "~/(signalr)" oder „~/signalr aber keines dieser Arbeit.

Jeder Vorschlag? Danke . im Voraus

Antwort

0

Gehen Sie folgendermaßen, dass sollte es tun:

<add input="{REQUEST_URI}" pattern="^/(signalr)" negate="true" />