2013-08-23 171 views
0

我想在Visual Studio 2012中構建一個SignalR應用程序。我的問題是,它在Visual Studio調試(在Windows 7上使用Visual Studio 2012)下工作良好,但是當我嘗試在IIS 7.5上部署應用程序,該應用程序只會顯示index.html頁面。IIS上的信號R聊天應用程序不工作

我的index.html頁面是這樣的:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 

    <link type="text/css" rel="stylesheet" href="Css/ChatStyle.css" /> 
    <link rel="stylesheet" href="/Css/JQueryUI/themes/base/jquery.ui.all.css"> 





    <!--Script references. --> 

     <!--Reference the jQuery library. --> 
    <script src="/Scripts/jquery-1.8.2.min.js"></script> 

    <script src="/Scripts/ui/jquery.ui.core.js"></script> 
    <script src="/Scripts/ui/jquery.ui.widget.js"></script> 
    <script src="/Scripts/ui/jquery.ui.mouse.js"></script> 
    <script src="/Scripts/ui/jquery.ui.draggable.js"></script> 
    <script src="/Scripts/ui/jquery.ui.resizable.js"></script> 



    <!--Reference the SignalR library. --> 
    <script src="/Scripts/jquery.signalR-1.0.0.js"></script> 

    <!--Reference the autogenerated SignalR hub script. --> 
    <script src="/signalr/hubs"></script> 

    <script type="text/javascript"> 

     $(function() { 

      setScreen(false); 

      // Declare a proxy to reference the hub. 
      var chatHub = $.connection.chatHub; 

      registerClientMethods(chatHub); 

      // Start Hub 
      $.connection.hub.start().done(function() { 

       registerEvents(chatHub) 

      }); 

     }); 

     function setScreen(isLogin) { 

      if (!isLogin) { 

       $("#divChat").hide(); 
       $("#divLogin").show(); 
      } 
      else { 

       $("#divChat").show(); 
       $("#divLogin").hide(); 
      } 

     } 

     function registerEvents(chatHub) { 

      $("#btnStartChat").click(function() { 

       var name = $("#txtNickName").val(); 
       if (name.length > 0) { 
        chatHub.server.connect(name); 
       } 
       else { 
        alert("Please enter name"); 
       } 

      }); 


      $('#btnSendMsg').click(function() { 

       var msg = $("#txtMessage").val(); 
       if (msg.length > 0) { 

        var userName = $('#hdUserName').val(); 
        chatHub.server.sendMessageToAll(userName, msg); 
        $("#txtMessage").val(''); 
       } 
      }); 


      $("#txtNickName").keypress(function (e) { 
       if (e.which == 13) { 
        $("#btnStartChat").click(); 
       } 
      }); 

      $("#txtMessage").keypress(function (e) { 
       if (e.which == 13) { 
        $('#btnSendMsg').click(); 
       } 
      }); 


     } 

     function registerClientMethods(chatHub) { 

      // Calls when user successfully logged in 
      chatHub.client.onConnected = function (id, userName, allUsers, messages) { 

       setScreen(true); 

       $('#hdId').val(id); 
       $('#hdUserName').val(userName); 
       $('#spanUser').html(userName); 

       // Add All Users 
       for (i = 0; i < allUsers.length; i++) { 

        AddUser(chatHub, allUsers[i].ConnectionId, allUsers[i].UserName); 
       } 

       // Add Existing Messages 
       for (i = 0; i < messages.length; i++) { 

        AddMessage(messages[i].UserName, messages[i].Message); 
       } 


      } 

      // On New User Connected 
      chatHub.client.onNewUserConnected = function (id, name) { 

       AddUser(chatHub, id, name); 
      } 


      // On User Disconnected 
      chatHub.client.onUserDisconnected = function (id, userName) { 

       $('#' + id).remove(); 

       var ctrId = 'private_' + id; 
       $('#' + ctrId).remove(); 


       var disc = $('<div class="disconnect">"' + userName + '" logged off.</div>'); 

       $(disc).hide(); 
       $('#divusers').prepend(disc); 
       $(disc).fadeIn(200).delay(2000).fadeOut(200); 

      } 

      chatHub.client.messageReceived = function (userName, message) { 

       AddMessage(userName, message); 
      } 


      chatHub.client.sendPrivateMessage = function (windowId, fromUserName, message) { 

       var ctrId = 'private_' + windowId; 


       if ($('#' + ctrId).length == 0) { 

        createPrivateChatWindow(chatHub, windowId, ctrId, fromUserName); 

       } 

       $('#' + ctrId).find('#divMessage').append('<div class="message"><span class="userName">' + fromUserName + '</span>: ' + message + '</div>'); 

       // set scrollbar 
       var height = $('#' + ctrId).find('#divMessage')[0].scrollHeight; 
       $('#' + ctrId).find('#divMessage').scrollTop(height); 

      } 

     } 

     function AddUser(chatHub, id, name) { 

      var userId = $('#hdId').val(); 

      var code = ""; 

      if (userId == id) { 

       code = $('<div class="loginUser">' + name + "</div>"); 

      } 
      else { 

       code = $('<a id="' + id + '" class="user" >' + name + '<a>'); 

       $(code).dblclick(function() { 

        var id = $(this).attr('id'); 

        if (userId != id) 
         OpenPrivateChatWindow(chatHub, id, name); 

       }); 
      } 

      $("#divusers").append(code); 

     } 

     function AddMessage(userName, message) { 
      $('#divChatWindow').append('<div class="message"><span class="userName">' + userName + '</span>: ' + message + '</div>'); 

      var height = $('#divChatWindow')[0].scrollHeight; 
      $('#divChatWindow').scrollTop(height); 
     } 

     function OpenPrivateChatWindow(chatHub, id, userName) { 

      var ctrId = 'private_' + id; 

      if ($('#' + ctrId).length > 0) return; 

      createPrivateChatWindow(chatHub, id, ctrId, userName); 

     } 

     function createPrivateChatWindow(chatHub, userId, ctrId, userName) { 

      var div = '<div id="' + ctrId + '" class="ui-widget-content draggable" rel="0">' + 
         '<div class="header">' + 
          '<div style="float:right;">' + 
           '<img id="imgDelete" style="cursor:pointer;" src="/Images/delete.png"/>' + 
          '</div>' + 

          '<span class="selText" rel="0">' + userName + '</span>' + 
         '</div>' + 
         '<div id="divMessage" class="messageArea">' + 

         '</div>' + 
         '<div class="buttonBar">' + 
          '<input id="txtPrivateMessage" class="msgText" type="text" />' + 
          '<input id="btnSendMessage" class="submitButton button" type="button" value="Send" />' + 
         '</div>' + 
        '</div>'; 

      var $div = $(div); 

      // DELETE BUTTON IMAGE 
      $div.find('#imgDelete').click(function() { 
       $('#' + ctrId).remove(); 
      }); 

      // Send Button event 
      $div.find("#btnSendMessage").click(function() { 

       $textBox = $div.find("#txtPrivateMessage"); 
       var msg = $textBox.val(); 
       if (msg.length > 0) { 

        chatHub.server.sendPrivateMessage(userId, msg); 
        $textBox.val(''); 
       } 
      }); 

      // Text Box event 
      $div.find("#txtPrivateMessage").keypress(function (e) { 
       if (e.which == 13) { 
        $div.find("#btnSendMessage").click(); 
       } 
      }); 

      AddDivToContainer($div); 

     } 

     function AddDivToContainer($div) { 
      $('#divContainer').prepend($div); 

      $div.draggable({ 

       handle: ".header", 
       stop: function() { 

       } 
      }); 

      ////$div.resizable({ 
      //// stop: function() { 

      //// } 
      ////}); 

     } 

    </script> 

</head> 
<body> 
    <div id="header"> 
     ABC BANK CHAT ROOM 
    </div> 
    <br /> 
    <br /> 
    <br /> 

    <div id="divContainer"> 
     <div id="divLogin" class="login"> 
      <div> 
       Your Name:<br /> 
      <input id="txtNickName" type="text" class="textBox" /> 
      </div> 
      <div id="divButton"> 
       <input id="btnStartChat" type="button" class="submitButton" value="Start Chat" /> 
      </div> 
     </div> 

     <div id="divChat" class="chatRoom"> 
      <div class="title"> 
       Welcome to Chat Room [<span id='spanUser'></span>] 

      </div> 
      <div class="content"> 
       <div id="divChatWindow" class="chatWindow"> 
       </div> 
       <div id="divusers" class="users"> 
       </div> 
      </div> 
      <div class="messageBar"> 
       <input class="textbox" type="text" id="txtMessage" /> 
       <input id="btnSendMsg" type="button" value="Send" class="submitButton" /> 
      </div> 
     </div> 

     <input id="hdId" type="hidden" /> 
     <input id="hdUserName" type="hidden" /> 
    </div> 

</body> 
</html> 

我已經嘗試了一些這裏列出的方法:Signalr /集線器沒有在IIS 7中加載,但在Visual Studio中正常工作,但他們都不來工作。任何幫助將不勝感激。謝謝,chiranjit

+0

您是否嘗試過這裏列出HTTP的事情: //www.asp.net/signalr/overview/getting-started/supported-platforms?特別是,在集成模式下運行並啓用無延伸URL? –

+0

是的。我也檢查了一個。但仍然不能在iis上工作。 – Chiranjit

回答

0

我認爲你必須刪除所有領先的斜槓「/」 (答案也許也至少升級到jQuery的1.9.1)

<link type="text/css" rel="stylesheet" href="Css/ChatStyle.css" /> 
<link rel="stylesheet" href="Css/JQueryUI/themes/base/jquery.ui.all.css" /> 


<!--Script references. --> 
<!--Reference the jQuery library. --> 

<script src="Scripts/jquery-1.9.1.min.js"></script> 
<script src="Scripts/ui/jquery.ui.core.js"></script> 
<script src="Scripts/ui/jquery.ui.widget.js"></script> 
<script src="Scripts/ui/jquery.ui.mouse.js"></script> 
<script src="Scripts/ui/jquery.ui.draggable.js"></script> 
<script src="Scripts/ui/jquery.ui.resizable.js"></script> 


<!--Reference the SignalR library. --> 
<script src="Scripts/jquery.signalR-1.0.0.js"></script> 

<!--Reference the autogenerated SignalR hub script. --> 
<script src="signalr/hubs"></script>