Search Results

Search found 25792 results on 1032 pages for 'map edit'.

Page 171/1032 | < Previous Page | 167 168 169 170 171 172 173 174 175 176 177 178  | Next Page >

  • User not in the sudoers file. This incident will be reported

    - by Sergiy Byelozyorov
    I need to install a package. For that I need root access. However the system says that I am not in sudoers file. When trying to edit one, it complains alike! How I am supposed to add myself to the sudoers file if I don't have the right to edit one? I have installed this system and only administrator. What can I do? Edit: I have tried visudo already. It requires me to be in sudoers in the first place. amarzaya@linux-debian-gnu:/$ sudo /usr/sbin/visudo We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for amarzaya: amarzaya is not in the sudoers file. This incident will be reported. amarzaya@linux-debian-gnu:/$

    Read the article

  • How can I use my cell phone to establish a dial-up networking connection?

    - by gWiz
    I am using Windows 7 and have a BlackBerry with T-Mobile (U.S.). I have paired the phone with my computer over Bluetooth, which automatically creates a serial port for it. I am able to open the port in PuTTY and successfully issue AT commands to the modem, including dialing. However, while using Windows to create and establish a Dial-Up Networking connection, I get an error dialog stating "Error 678. The remote computer did not respond." In my testing, I also tried setting up a connection to dial a number connected to a phone. When attempting to connect over this connection, the phone does ring but the very moment I answer the call, my computer displays the above error dialog. What must be done to successfully establish such a PPP connection? Some special AT initialization string perhaps? To clarify, I'm not referring to the well-described and popular technique known as "tethering," in which the remote host of the data link is the mobile service provider. I am interested specifically in establishing direct data links with remote hosts other than my mobile service provider. Think old-school landline connection to your friend's computer or BBS. Edit 1 As grawity pointed out in comments, the missing piece of the puzzle is the actual modulator that is compatible with v-series protocols, which I expected to be built into the cellphone. So far the best only software alternative I could find is this experimental project. Edit 2 Found this forum discussion today. The participants state that there is no old-school modem in the BlackBerry. Edit 3 When I place a call in PuTTY with ATD, immediately after the call is answered (and the callee is initiating the handshake) the cellphone returns OK. This is not the expected behavior for establishing a data connection. The phone should reciprocate the handshake, and upon success return CONNECT. (Alternatively it should return BUSY or NO CARRIER, but never simply OK.) Windows DUN must be interpreting this as the "Error 678" I was seeing.

    Read the article

  • Work from home on an iPad?

    - by Alex Basson
    The situation: My wife has a 13" MacBook Pro that she uses for email, Facebook, web surfing, and working from home. I'm about to buy us our first iPad. My wife's brother's computer just went belly-up, and she's contemplating giving him her MacBook and just using the iPad. The question is whether or not this is possible or realistic. Obviously, the iPad is well-suited for the email/web/Facebook tasks, but the working-from-home thing is an absolute must -- if the iPad can't handle that, it's a deal-breaker. For my wife, working from home means two things: Accessing her workplace computer's Windows Vista desktop, which she currently does via Remote Desktop. Editing Office documents locally, which she currently syncs via Dropbox. Being able to edit documents locally is important, because sometimes she will download documents and edit them when she doesn't have network access (e.g. on the subway). I'm more than happy to get a keyboard dock for her, so typing won't be an issue. Are there any iPad apps she can use to access her work computer and edit her work files? Thanks for any suggestions!

    Read the article

  • What to do with old laptop screens?

    - by Lord Torgamus
    This question is inspired by another SU question I came across earlier today: What to do with old hard drives? It made me think about two long-dead laptops I have with perfectly good screens still inside. One is a Dell Inspiron 5100 and the other is an Averatec E1200, but responses need not be geared towards those particular models' screens. Rules, based heavily on the original question's: Objectives and suggestions to keep in mind when you post an answer : Should showcase your geekiness, be plain ol' fun, serve a social purpose or benefit the community. Your answer need not be limited to only one screen. For a really good answer, I'll go out and buy additional leftover screens. Your answer need not be limited to one project per screen. If additional accessories need be purchased, make sure they are common. Don't tell me to get a moon rock or something. The projects you suggested should serve a useful purpose; art is nice, but functional art is way better. Thanks in advance, folks. EDIT: Found another related question. Fun projects to do with an old 17" LCD monitor EDIT 2: I, for one, am enjoying the new outpouring of creativity here. Best fifty bucks... I mean, rep points... I ever spent. EDIT 3: That does it. At the end of the week, there was a tie for most votes between the accepted answer and the game platform answer. The game platform answer was cooler, but less reasonable as a project to actually do; in other words, it was more moon rocky. Unfortunately, I think fencepost had the best comment on the topic, which is that displays on their own have no good interface. Thanks for playing, everyone!

    Read the article

  • Samba / smbd on Centos 6.5

    - by Satalink
    I've installed Samba4 and have the smb.conf file as follows: [global] workgroup = WORKGROUP server string = Samba Server realm = REXIALO.COM netbios name = REXIALO.COM security = user map to guest = Bad Password bind interfaces only = no interfaces = lo venet0 log file = /var/log/samba/samba.log max log size = 1000 [webroot] path = /usr/local/apache/htdocs comment = Example.com webroot directory read only = No I can connect from the same server with smbclient. Localhost: # smbclient -L localhost -U root Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.11] Sharename Type Comment --------- ---- ------- webroot Disk RexiAlo webroot directory IPC$ IPC IPC Service (RexiAlo Samba Server) Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.11] Server Comment --------- ------- Workgroup Master --------- -------Enter root's password: network: # smbclient -L rexialo.com -U Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.11] Sharename Type Comment --------- ---- ------- webroot Disk RexiAlo webroot directory IPC$ IPC IPC Service (RexiAlo Samba Server) Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.11] Server Comment --------- ------- Workgroup Master --------- ------- The problem is when I try to map to the smb webroot from Windows 7, it asks for user/pass but just times out and then prompts for credentials. The samba.log file does not show any activity other than the startup of the smbd process. Any help would be appreciated.

    Read the article

  • Can't access certain web sites - reset router, any ideas?

    - by IniTech
    EDIT: This problem was resolved by my ISP - had to do with damaged fiber in one of their locations. Thanks to everyone that helped. Not sure if this is the right site (I'm a StackOverflow user) so I thought I'd give it a shot. I'm having trouble connecting to certain sites on any of the 3 machines that are on my LAN. The following sites are returning "Problem Loading Page - The connection has timed out" Sourceforge.net CNet.com Microsoft.com OpenDNS.com even my company's webiste I was worried about possible malware/virus, but I don't think that is the case (given the inability to access my company's site and the fact that all 3 machines are having the same issues.) I've tried with IE8, FF, and Chrome I have reset my router (WRT54G) and my machine(s) multiple times. EDIT: It is also worth noting that this page spins constantly and no avatars show up (I'm assuming it is trying to access gravatar.com with no success.) EDIT: I have the same issues directly connected to the modem. So, any router config is probably not the issue I'm a programmer, not a network guy - any ideas?

    Read the article

  • 'hijacking' gui and mapping certain controls to certain functions. VNC. TouchOSC

    - by Nick
    I need a VNC LIKE application which rather than sharing the screen, can take control of a specific application and then share that functionality across a network to multiple clients. Obviously, VNC requires use of the mouse and therefore only one user can do something at one time, this is NOT what I am after. I am after something that can hijack the graphic user interface, map certain controls, and then display them in another piece of software (perhaps like TOUCHOSC) The software I would like to map and share is called YAMAHA STUDIO MANAGER and is used to control certain Yamaha audio hardware, and in my case a Yamaha LS9 and M7CL mixing console. Its free.

    Read the article

  • Window too big to fit the screen!

    - by syockit
    I'm using Windows 7 on a 8.9' monitor with 1280x768 screen resolution. Using the might of arithmetics, I'm able to determine that my dpi (actually ppi) should be 167. Win7 is really helpful in that it doesn't have to restart to apply new dpi settings, unlike its predecessors (though I'd rather it applies straight away). The problem with small monitors in Windows is that when you come across windows too big to fit the screen, you can't move the title bar far above it. In X window managers I used in the past, you could alt-drag the window to anywhere you want, but in Windows, even if you alt-space and select move, it will automatically push the window back until the title bar is visible. I'm looking for a solution that either: allows me to move window freely without regard to titlebar visibility, or attach a scrollbar to existing window, or EDIT: create virtual desktops that allow me to span windows over 2 desktops, or EDIT 2: allow me to set larger virtual resolution, then pan & scan. EDIT 3: I found some progs that might do some of the above: 1) AltDrag allows me to drag, resize using alt and left/right mouse button. Neat! Best solution so far. 2) GiMeSpace Desktop Extender is supposed to allow me to scroll desktop. Didn't work. The other new version, GiMeSpace Ultimate Taskbar worked, but it destroys my Superbar, replacing it with its map.

    Read the article

  • Rsync root files between systems without specifying password

    - by xpt
    This seems very tricky to me. I've set up my two systems so that I can rsync files between them as me, without specifying password. Now the the problem is to rsync files that belong to root. On both of my systems, there are no root passwords. The only way to become root is via sudo. So I can neither give a password for sudo rsyn local root@remote:, no use my ssh-agent to supply pass phrase. I don't want to set up a root password on any systems; and I do need the files to be owned by root on both systems. EDIT: Using the files that belong to root is just an example, I need a way for my unprivileged account to read/write system (including root-owned) files easily. One example is to copy my configured /root environment into the freshly-installed system. The two systems are actually two VMs under a single host, so it's not a big concern for me to copy root-owned files between them. EDIT 2: If I only want to copy my configured /root environment into the freshly-installed system, I can use tar: sudo tar cvzf - /root | ssh me@remote sudo tar xvzf - -C / But I do need rsync to update from time to time. Any easy way to make it happen? EDIT 3: Formally formulate the question Alright, it all began with the question, how to rsync files that belong to root between two systems as a normal unprivileged user, without specifying password, under the condition that, The root account is locked on both of systems. I.e., there are no root passwords. The only way to become root is via sudo (recommended security practice, see http://help.ubuntu.com/community/RootSudo) I don't want a completely passwordless sudo but don’t want to be typing passwords all the time either. The normal unprivileged user has entered their ssh pass phrase into the ssh agent. Thanks

    Read the article

  • Clarification of the difference between PCI memory addressing and I/O addressing?

    - by KevinM
    Could someone please clarify the difference between memory and I/O addresses on the PCI/PCIe bus? I understand that I/O addresses are 32-bit, limited to the range 0 to 4GB, and do not map onto system memory (RAM), and that memory addresses are either 32-bit or 64-bit. I get the impression that memory addressing must map onto available RAM, is this true? That if a PCI device wishes to transfer data to a memory address, that address must exist in actual system RAM (and is allocated during PCI configuration) and not virtual memory. So if a PCI device only needs to transfer a small amount of data at a time, where there is no advantage to putting it into RAM or using DMA, then I/O addressing is fine (e.g. a parallel port implemented on a PCI card). And why do I keep reading that PCI/PCIe I/O addressing is being deprecated in favour of memory addressing? Thanks!

    Read the article

  • Using sound forge 6.0 what will be the need to upgrade to latest version

    - by Jayapal Chandran
    I had been using sound forge 6.0 not recently but long back. I edit mp3 files for my purpose and some more filters like flange, pan, fade in out, recording, line in recording, extracting sound from video files (mpg, avi(divx), etc...), increasing the default volume, editing treble and bass effects, and etc... I am not going to use it professionally. I use it just like that. Now when i checked i could see Sound Forge Audio Studio 10 is the latest version for my purpose. Others are too high i think. Besides, i had been using Gold Wave version 4 very extensively just to edit sound files mostly mp3. and here is the reason for me to change to sound forge. It is when we edit mp3 files it deflashes(making it raw i think) before editing. after editing if i save it asks for the format to save and i will choose mp3. At this point it again applies the compression process which makes the sound file lossy. When i did the same with sound forge it did not deflash. It just edited the file as mp3. May be i dont know whether gold wave has the same option. So, please suggest. oh i had asked a question already like this... here it is goldwave vs sound forge in editing mp3 files

    Read the article

  • Is there a way to get a 10000x10000 virtual resolution desktop?

    - by pingo
    I have a java applet map viewer and I'd like to plot out the map it displays. To do that I need to open it in a high enough resolution to avoid too much stitching. Is there any possible way I could get a desktop with such high resolution? So far I've been able to use panning 2560x1920 by booting windows 7 in VmWare Player. Would it be possible to get it higher? Maybe this would be doable on Linux? The whole thing can be laggy as hell as long as it will render my screenshot...

    Read the article

  • rsync invocation to replace symlinks pointing to source?

    - by bdbaddog
    Currently I'm moving a big filesystem to a new server as the original fileserver is no longer able to handle the filesystem writes. To make this quick I made symlinks at the target filesystem pointing to the original filesystem. Initially: /company/release (mountpoint of the original filesystem) After migration: /company/release.old (points to original filesystem after automount map update) /company/release (points to new fileserver/filesystem after automount map update) In /company/release there are symlinks like the following: /company/release/product-1.0.tar.gz - /company/release.old/product-1.0.tar.gz /company/release/product-1.0 - /company/release.old/product-1.0 (this is a tree of files) Using symlinks allowed me to move the writes to the new filesystem quickly. Now I'd like to slowly migrate the existing files and directories to the new filesystem. The problem I'm running into is that since the symlinks point back at the original files rsync doesn't see any difference and so it doesn't actually copy the file(s) or directory(s) and remove/overwrite the symlinks. Is there a set of rsync flags which will do what I want?

    Read the article

  • Windows 7, Black screen with cursor, impossible to logon

    - by PJC
    First - I have gone through as many possible solutions I've found here and elsewhere. [Edit - to describe the issue in more detail, the PC appears to boot correctly, but instead of the logon screen, I have been getting a black screen WITH the pointer cursor, and it responds correctly to the mouse. Pressing CTL-ALT-DEL brings up the logon screen's background, but with no logon area nor any other content. This screen was at the full resolution before I uninstalled the graphics driver in safe-mode.] I also just ran a full up-to-date AVG scan from boot media. [Edit - the AVG scan, which was updated to today's virus signatures, found no issues at all.] So - steps I've tried: Safe Boot, Restore from before the issue - done, no help. Uninstall the graphics driver - done, now i have a 1024x768 fallback screen, still no way in. sfc /scannow - only doable from Safe boot obviously, but no change. [Edit - booting from restore media, performing a startup repair and...]Restore further back - restored to 2 days ago, and I'd had many reboots since then with no problem. Enable autologin to try to get beyond the login screen - done, doesn't work. It seems the best advice is complete reinstall, but I really don't want to do that because it'll take 3-4 days to add all the apps I use. Some key points to note - in both states - before and after removing the video driver, I always had a mouse cursor on the screen. CTL-ALT-DEL flashes up the login background, but no login info. I can (and often do) reinstall from scratch, but was at a fairly stable state before this, and would prefer not to. -Paul

    Read the article

  • NFSv4 with idmap

    - by HTF
    The following errors appear on the NFS server, could you please advise how I can fix this? Details: System: CentOS release 6.4, NFS: nfs-utils-1.2.3-36 # cat /etc/idmapd.conf [General] Domain = domain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody [Translation] Method = nsswitch Sep 3 08:25:28 snode1 rpc.idmapd[1382]: nss_getpwnam: name '0' does not map into domain 'domain.com' Sep 3 08:25:29 snode1 rpc.idmapd[1382]: nss_getpwnam: name '500' does not map into domain 'domain.com' EDIT: 03 Sep 2013 10:41 Please note that I'm using NFSv4 and these errors appear on NFS server only (not NFS clients). Server: # cat /etc/sysconfig/nfs MOUNTD_NFS_V2="no" MOUNTD_NFS_V3="no" ... RPCNFSDARGS="-N 2 -N 3" Clients: # cat /etc/fstab server:/ /data nfs4 defaults,hard,intr,timeo=15,_netdev,noatime,nodiratime,nosuid 0 0

    Read the article

  • Emacs equivalent of this Vim command to run my tests?

    - by eightbitraptor
    I'm using Emacs at the moment and experimenting with it for my Rails development and there is one thing that I do quite regularly in Vim and I'd like to know if an equivalent exists in Emacs, or an alternative workflow to achieve the behavior that I need. The command in Vim is :map ;t :!rspec --no-color %<cr> Essentially this maps a key combination to run a bash/shell command on the file represented by the current buffer (% expands to the filename at runtime, the <cr> is just a carriage return at the end to execute the command). I map all sorts of random little commands as and when I need them and I really miss the immediacy of this approach. How can I achieve something similar?

    Read the article

  • Citrix has issues resolving network shares

    - by George
    We are having this weird issue with our Citrix (version 4.5) server (sitting on Windows 2003 r2), where a couple users have issues resolving single shared network drive. We use a logon script to map all shared drives. The weird part is that of 3 shared drives, users can access 2, but the 3rd one goes to the old server (even though the logon script points to the new server). And that issues is limited to a few users. I had them log off and re-loggin to no success. It happens just in Citrix. The file server, that is being accessed, is Windows 2008 R2. Like I said we use a logon script to map the network drive. I understand I might be a little confusing, I will gladly reword the post.

    Read the article

  • Win 7: How can I resize a window to make it much bigger than my screen?

    - by RexE
    I have a window that I'd like to make much bigger than my physical screen (explanation of why below). I hit Alt+Space, M, and then press the Up arrow to move the title bar above the physical top of my screen. However, when I press Enter to set it, the title bar snaps back to the top of my screen. How can I prevent this from happening? Background: I want to get a hi-res image of a neighborhood map so that it can be printed to a poster. Google Earth has a "Save as JPG" feature, which will save the map in the window to a file. The bigger the window, the bigger the JPG; so, I'm trying to make the window as big as I can. Alternate suggestions welcome.

    Read the article

  • Booting drops to EFI shell but boots normally if exit'ed

    - by wittybear
    (first post here... I'm normally on stackoverflow) I'm booting an Intel ME 5788 board which uses EFI (a replacement for BIOS). On boot it drops out to the EFI Shell and the 'map' shows the drive as a blockdevice but there is no filesystem device mapped. If I just type 'exit' it boots normally to windows 7 and the configuration (using bcdedit.exe) looks fine. I'm confused - surely if its not been able to map the blockdevice as a filesystem device it should not boot? I would like to be able to get the boot to proceed without my interaction - does anyone know how to do it? (Also there is no Boot Manager options available in the shell, i.e. autoboot, bcfg etc)

    Read the article

  • Mapping Ctrl+Arrow for Home/End/PageUp/Down

    - by user67275
    I'm using Windows 7 on Dell New Inspiron 14z Ultrabook. It doesn't have Home/End/PgUp/PgDn keys. Instead I have to use Fn + arrow keys. Can I re-map those to Ctrl + arrows or Alt + arrows or Shift + arrows? That way I could go one page up and down with only my right hands rather than with the left hand on the Fn key and right hand on arrow key. Also, volume up and down is assigned to FnF11 and FnF12. Can I re-map them to F11 and F12? Existing functions assigned to F11 and F12 will be replaced by FnF11 and FnF12. Is it possible?

    Read the article

  • 2010 outlook stationery

    - by chris
    I have just installed Microsoft 2010 I am using the 'Outlook 2010' for my email program. For the past few years I have used Outlook Express and used the program quite well However with the Outlook 2010 I have not been able to find 2 functions that I was able to do on Outlook Express 1) OE I could press stationary and it would insert a BIT Map for me , however when I do stationary in Outlook 2010 it no longer allows me to insert the Bit map. 2) OE I created a rule that allowed me to copy emails into another folder , however in 2010 it only allows me to move as a rule and not the initial copy. Please could you explain how I may be able to use the same function in 2010?

    Read the article

  • how to recover my xml default icon?

    - by moonway
    My XML files are showing the unknown programs icon, you can see in this picture: i cant revise its icon why? i look it up in the registry i find no error look at the following Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT.xml] @="xmlfile" "Content Type"="text/xml" "PerceivedType"="text" [HKEY_CLASSES_ROOT.xml\PersistentHandler] @="{7E9D8D44-6926-426F-AA2B-217A819A5CCE}" Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\xmlfile] @="@C:\Windows\System32\msxml3r.dll,-1" "EditFlags"=hex:00,00,00,00 "FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\ 00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\ 32,00,5c,00,6d,00,73,00,78,00,6d,00,6c,00,33,00,72,00,2e,00,64,00,6c,00,6c,\ 00,2c,00,2d,00,31,00,00,00 [HKEY_CLASSES_ROOT\xmlfile\BrowseInPlace] [HKEY_CLASSES_ROOT\xmlfile\CLSID] @="{48123BC4-99D9-11D1-A6B3-00C04FD91555}" [HKEY_CLASSES_ROOT\xmlfile\DefaultIcon] @="C:\Windows\System32\msxml3.dll,0" [HKEY_CLASSES_ROOT\xmlfile\shell] @="open" [HKEY_CLASSES_ROOT\xmlfile\shell\edit] [HKEY_CLASSES_ROOT\xmlfile\shell\edit\command] @="\"C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSOXMLED.EXE\" /verb edit \"%1\"" [HKEY_CLASSES_ROOT\xmlfile\shell\Open] [HKEY_CLASSES_ROOT\xmlfile\shell\Open\Command] @="\"C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSOXMLED.EXE\" /verb open \"%1\"" [HKEY_CLASSES_ROOT\xmlfile\shell\Open\ddeexec] @="" [HKEY_CLASSES_ROOT\xmlfile\ShellEx] [HKEY_CLASSES_ROOT\xmlfile\ShellEx\IconHandler] @="{AB968F1E-E20B-403A-9EB8-72EB0EB6797E}" can you find something wrong or you can paste your reg hehe i need default reg about xml which is with default associated exe all right!

    Read the article

  • VMWare server: virtual machine start-up reaches 95% and hangs

    - by Magsol
    This problem cropped up today, after updating my eVGA motherboard's chipset in order to try and fix an unrelated issue. After installing the chipset update (contained SATA and Ethernet drivers), every time I've tried to start my Ubuntu VM, it reaches 95% in the web interface and then just hangs. I'm using VMWare Server 2.0.2, running it within Windows 7 64-bit. I haven't had any issues up until now, and I suspect it has something to do with the chipset update. I've already tried reinstalling VMWare itself, removing the VM from the inventory and re-adding it, and neither has proved successful. I'm also not sure how to kill the VMware server process itself once the start-up hangs; I've only been able to try again by rebooting (as none of the VMWare Services listed kill the server process itself). Any insights? Edit: Uhhh...as an addendum: I have a cron job set up on my Ubuntu VM that runs every 20 minutes. The VM is still listed in the VMWare web interface as at 95% of startup, and the start/stop buttons are still disabled, but the cronjob just ran. I also tested SSH, and I was able to tunnel into the Ubuntu VM as well. Now I'm really confused. Edit #2: I just started a thread on the VMWare Server support forums on this same topic. Hopefully between the two communities, we can come up with an answer: http://communities.vmware.com/thread/251033 Edit #3: In lieu of a specific fix, I've switched over to VirtualBox, and all is working just fine.

    Read the article

  • SignalR Auto Disconnect when Page Changed in AngularJS

    - by Shaun
    Originally posted on: http://geekswithblogs.net/shaunxu/archive/2014/05/30/signalr-auto-disconnect-when-page-changed-in-angularjs.aspxIf we are using SignalR, the connection lifecycle was handled by itself very well. For example when we connect to SignalR service from browser through SignalR JavaScript Client the connection will be established. And if we refresh the page, close the tab or browser, or navigate to another URL then the connection will be closed automatically. This information had been well documented here. In a browser, SignalR client code that maintains a SignalR connection runs in the JavaScript context of a web page. That's why the SignalR connection has to end when you navigate from one page to another, and that's why you have multiple connections with multiple connection IDs if you connect from multiple browser windows or tabs. When the user closes a browser window or tab, or navigates to a new page or refreshes the page, the SignalR connection immediately ends because SignalR client code handles that browser event for you and calls the "Stop" method. But unfortunately this behavior doesn't work if we are using SignalR with AngularJS. AngularJS is a single page application (SPA) framework created by Google. It hijacks browser's address change event, based on the route table user defined, launch proper view and controller. Hence in AngularJS we address was changed but the web page still there. All changes of the page content are triggered by Ajax. So there's no page unload and load events. This is the reason why SignalR cannot handle disconnect correctly when works with AngularJS. If we dig into the source code of SignalR JavaScript Client source code we will find something below. It monitors the browser page "unload" and "beforeunload" event and send the "stop" message to server to terminate connection. But in AngularJS page change events were hijacked, so SignalR will not receive them and will not stop the connection. 1: // wire the stop handler for when the user leaves the page 2: _pageWindow.bind("unload", function () { 3: connection.log("Window unloading, stopping the connection."); 4:  5: connection.stop(asyncAbort); 6: }); 7:  8: if (isFirefox11OrGreater) { 9: // Firefox does not fire cross-domain XHRs in the normal unload handler on tab close. 10: // #2400 11: _pageWindow.bind("beforeunload", function () { 12: // If connection.stop() runs runs in beforeunload and fails, it will also fail 13: // in unload unless connection.stop() runs after a timeout. 14: window.setTimeout(function () { 15: connection.stop(asyncAbort); 16: }, 0); 17: }); 18: }   Problem Reproduce In the codes below I created a very simple example to demonstrate this issue. Here is the SignalR server side code. 1: public class GreetingHub : Hub 2: { 3: public override Task OnConnected() 4: { 5: Debug.WriteLine(string.Format("Connected: {0}", Context.ConnectionId)); 6: return base.OnConnected(); 7: } 8:  9: public override Task OnDisconnected() 10: { 11: Debug.WriteLine(string.Format("Disconnected: {0}", Context.ConnectionId)); 12: return base.OnDisconnected(); 13: } 14:  15: public void Hello(string user) 16: { 17: Clients.All.hello(string.Format("Hello, {0}!", user)); 18: } 19: } Below is the configuration code which hosts SignalR hub in an ASP.NET WebAPI project with IIS Express. 1: public class Startup 2: { 3: public void Configuration(IAppBuilder app) 4: { 5: app.Map("/signalr", map => 6: { 7: map.UseCors(CorsOptions.AllowAll); 8: map.RunSignalR(new HubConfiguration() 9: { 10: EnableJavaScriptProxies = false 11: }); 12: }); 13: } 14: } Since we will host AngularJS application in Node.js in another process and port, the SignalR connection will be cross domain. So I need to enable CORS above. In client side I have a Node.js file to host AngularJS application as a web server. You can use any web server you like such as IIS, Apache, etc.. Below is the "index.html" page which contains a navigation bar so that I can change the page/state. As you can see I added jQuery, AngularJS, SignalR JavaScript Client Library as well as my AngularJS entry source file "app.js". 1: <html data-ng-app="demo"> 2: <head> 3: <script type="text/javascript" src="jquery-2.1.0.js"></script> 1:  2: <script type="text/javascript" src="angular.js"> 1: </script> 2: <script type="text/javascript" src="angular-ui-router.js"> 1: </script> 2: <script type="text/javascript" src="jquery.signalR-2.0.3.js"> 1: </script> 2: <script type="text/javascript" src="app.js"></script> 4: </head> 5: <body> 6: <h1>SignalR Auto Disconnect with AngularJS by Shaun</h1> 7: <div> 8: <a href="javascript:void(0)" data-ui-sref="view1">View 1</a> | 9: <a href="javascript:void(0)" data-ui-sref="view2">View 2</a> 10: </div> 11: <div data-ui-view></div> 12: </body> 13: </html> Below is the "app.js". My SignalR logic was in the "View1" page and it will connect to server once the controller was executed. User can specify a user name and send to server, all clients that located in this page will receive the server side greeting message through SignalR. 1: 'use strict'; 2:  3: var app = angular.module('demo', ['ui.router']); 4:  5: app.config(['$stateProvider', '$locationProvider', function ($stateProvider, $locationProvider) { 6: $stateProvider.state('view1', { 7: url: '/view1', 8: templateUrl: 'view1.html', 9: controller: 'View1Ctrl' }); 10:  11: $stateProvider.state('view2', { 12: url: '/view2', 13: templateUrl: 'view2.html', 14: controller: 'View2Ctrl' }); 15:  16: $locationProvider.html5Mode(true); 17: }]); 18:  19: app.value('$', $); 20: app.value('endpoint', 'http://localhost:60448'); 21: app.value('hub', 'GreetingHub'); 22:  23: app.controller('View1Ctrl', function ($scope, $, endpoint, hub) { 24: $scope.user = ''; 25: $scope.response = ''; 26:  27: $scope.greeting = function () { 28: proxy.invoke('Hello', $scope.user) 29: .done(function () {}) 30: .fail(function (error) { 31: console.log(error); 32: }); 33: }; 34:  35: var connection = $.hubConnection(endpoint); 36: var proxy = connection.createHubProxy(hub); 37: proxy.on('hello', function (response) { 38: $scope.$apply(function () { 39: $scope.response = response; 40: }); 41: }); 42: connection.start() 43: .done(function () { 44: console.log('signlar connection established'); 45: }) 46: .fail(function (error) { 47: console.log(error); 48: }); 49: }); 50:  51: app.controller('View2Ctrl', function ($scope, $) { 52: }); When we went to View1 the server side "OnConnect" method will be invoked as below. And in any page we send the message to server, all clients will got the response. If we close one of the client, the server side "OnDisconnect" method will be invoked which is correct. But is we click "View 2" link in the page "OnDisconnect" method will not be invoked even though the content and browser address had been changed. This might cause many SignalR connections remain between the client and server. Below is what happened after I clicked "View 1" and "View 2" links four times. As you can see there are 4 live connections.   Solution Since the reason of this issue is because, AngularJS hijacks the page event that SignalR need to stop the connection, we can handle AngularJS route or state change event and stop SignalR connect manually. In the code below I moved the "connection" variant to global scope, added a handler to "$stateChangeStart" and invoked "stop" method of "connection" if its state was not "disconnected". 1: var connection; 2: app.run(['$rootScope', function ($rootScope) { 3: $rootScope.$on('$stateChangeStart', function () { 4: if (connection && connection.state && connection.state !== 4 /* disconnected */) { 5: console.log('signlar connection abort'); 6: connection.stop(); 7: } 8: }); 9: }]); Now if we refresh the page and navigated to View 1, the connection will be opened. At this state if we clicked "View 2" link the content will be changed and the SignalR connection will be closed automatically.   Summary In this post I demonstrated an issue when we are using SignalR with AngularJS. The connection cannot be closed automatically when we navigate to other page/state in AngularJS. And the solution I mentioned below is to move the SignalR connection as a global variant and close it manually when AngularJS route/state changed. You can download the full sample code here. Moving the SignalR connection as a global variant might not be a best solution. It's just for easy to demo here. In production code I suggest wrapping all SignalR operations into an AngularJS factory. Since AngularJS factory is a singleton object, we can safely put the connection variant in the factory function scope.   Hope this helps, Shaun All documents and related graphics, codes are provided "AS IS" without warranty of any kind. Copyright © Shaun Ziyan Xu. This work is licensed under the Creative Commons License.

    Read the article

< Previous Page | 167 168 169 170 171 172 173 174 175 176 177 178  | Next Page >