Search Results

Search found 11186 results on 448 pages for 'fedora 11'.

Page 236/448 | < Previous Page | 232 233 234 235 236 237 238 239 240 241 242 243  | Next Page >

  • Cannot access Nagios Web Interface

    - by Dominiqs
    After successfully installing Nagios core 3.4.1 (i also installed plug-in1.4.11) on our linux rhel 5.3 server i cannot login to the nagios web interface.I am running apache 2.2.3 I am using internet explorer 8 and also firefox 3.6.3 When i try to enter the url http//localhost/nagios/ on a desktop (on the same network as the Nagios server)it does seem to like it but if i try http//x.x.x.x/nagios/ (where x.x.x.x is the IP address of my nagios server) it likes it but then the authentication popup appears after entering the password and username(nagiosadmin) it throws the errors below The server x.x.x.x at Nagios access requires a username and password Warning this server is requesting that your username and password be sent in an insecure manner(basic authentication without a secure connection) After a few attempts i get error 401 authentication required error from internet explorer ;this server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials or your browser doesnt understand how to supply the credentials required. Help Please anyone..seems like an authentication issue

    Read the article

  • Logs show lots of user attempts from unknown IP

    - by rodling
    I lost access to my instance which I host on AWS. Keypairing stopped to work. I detached a volume and attached it to a new instance and what I found in logs was a long list of Nov 6 20:15:32 domU-12-31-39-01-7E-8A sshd[4925]: Invalid user cyrus from 210.193.52.113 Nov 6 20:15:32 domU-12-31-39-01-7E-8A sshd[4925]: input_userauth_request: invalid user cyrus [preauth] Nov 6 20:15:33 domU-12-31-39-01-7E-8A sshd[4925]: Received disconnect from 210.193.52.113: 11: Bye Bye [preauth] Where "cyrus" is changed by hundreds if not thousands of common names and items. What could this be? Brute force attack or something else malicious? I traced IP to Singapore, and I have no connection to Singapore. May thought is that this was a DoS attack since I lost access and server seemed to stop working. Im not to versed on this, but ideas and solutions for this issue are welcome.

    Read the article

  • Allow Internet Access with Default Gateway on Windows 7 VPN Server

    - by Hakoda
    I have a Windows 7 box at home (which I'll refer to as Home-VPN) that runs a simple PPTP VPN server. I have a range of 2 IP address (192.168.1.10-192.168.1.11) to give out, although the server is only able to give out one concurrent connection. Ports 1723 & 47 are correctly forwarded to the server. IPv6 is disabled on both Home-VPN and the client. I setup Home-VPN just like this Youtube video: http://www.youtube.com/watch?v=1s5JxMG06L4 I can connect to it just fine but I can't access the Internet when connected to Home-VPN, all outside web servers (eg. google.com, mozilla.org, apple.com) are unreachable. I know I can uncheck "Use Default Gateway on Remote Servers" on the client side under IPv4 settings but that will route all my traffic through my current connection, rather than through the VPN, defeating the purpose of said VPN. Any ideas on how I can fix this?

    Read the article

  • Are there any web-based Linux image builders that allow selection of preinstalled packages?

    - by Series8217
    I know of one: The Angstrom Linux distribution has an online builder (called Narcissus) that allows you to select what applications you want preinstalled in the OS, then builds a working image of it for you to download and run from a flash drive. Is there anything like that for more popular distributions like Red Hat, Fedora, Ubuntu, or Debian? I think this would be particularly useful for virtual appliances and server deployment.

    Read the article

  • Macbook not connecting to WIFI

    - by Model Reject
    I have been having this problem all week. My Macbook aluminium can't see my wifi network. I have changed the channel to one that isn't being used by neighbours and my iphone picks it up straight away. In other words, the router is fine. It's just the macbook can't see it. This is driving me nuts if anyone can help... My airport card details... Card Type: AirPort Extreme (0x14E4, 0x8D) Firmware Version: Broadcom BCM43xx 1.0 (5.10.131.36.1) Locale: ETSI Supported PHY Modes: 802.11 a/b/g/n Supported Channels: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140 Wake On Wireless: Supported The funny thing is that is was intermitent on Saturday. I had to keep restarting router and it worked for about 5 minutes, now it doesn't connect or see it at all. Tried using kisMAC and it can't see network either. Thanks, C

    Read the article

  • WIndows Hosted Network

    - by Nandakumar V
    I have created a hosted network in my windows7 system. The netsh wlan show hostednetwork command gives the output Hosted network settings ----------------------- Mode : Allowed SSID name : "rambo" Max number of clients : 100 Authentication : WPA2-Personal Cipher : CCMP Hosted network status --------------------- Status : Started BSSID : xx:xx:xx:xx:xx:xx Radio type : 802.11n Channel : 11 Number of clients : 1 xx:xx:xx:xx:xx:xx Authenticated But I have forgot the password for this connection and after some googling I found the command netsh wlan refresh hostednetwork YourNewNetworkPassword. But on executing this command it get the error C:\Users\user>netsh wlan refresh hostednetwork rambo123 Invalid value "rambo123" for command option "data". Usage: refresh hostednetwork [data=]key I have no idea what is wrong with this command.

    Read the article

  • Request exceeded the limit of 10

    - by Webnet
    My logs are FULL of [Tue Jan 11 10:20:45 2011] [error] [client 99.162.115.123] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: https://www.domain.com/vehicles/Chevrolet/Uplander/2006 The problem is when I enable LogLevel debug we get HUGE error logs because all of our traffic is SSL. From what I can tell the file doesn't record these errors anymore, either that or it's so buried in SSL logs that I just can't find them. Here's my .htaccess Options -indexes RewriteEngine On RewriteRule ^battery/([^/]+)$ /browser/product?sku=BATTERY+$1&type=battery RewriteRule ^vehicles/([^/]+)/([^/]+)/([^/]+)/product([0-9]+)$ /browser/index.php?make=$1&model=$2&id=$3&%{QUERY_STRING} [L,NC] RewriteRule ^vehicles/([^/]+)/([^/]+)/([^/]+)/([0-9]+)$ /browser/product.php?make=$1&model=$2&year=$3&id=$4&%{QUERY_STRING} [L,NC] RewriteRule ^vehicles/([^/]+)/([^/]+)/([^/]+)$ /store/product/list.php?make=$1&model=$2&year=$3&%{QUERY_STRING} [L,NC] RewriteRule ^vehicles/([^/]+)/([^/]+)$ /vehicle/make/model/year/list.php?make=$1&model=$2&%{QUERY_STRING} [L,NC] RewriteRule ^vehicles/([^/]+)$ /vehicle/make/model/list.php?make=$1&%{QUERY_STRING} [L,NC]

    Read the article

  • Change Firefox theme locally with CSS (without any extension)

    - by Email
    I have some modifications I want to make WITHOUT installing extensions. eg: max width of tab and height of menu, In previous versions you could have it done via: about:config ->browser.tabs.tab.maxWidth Since FF4 it should be done with CSS. Now I searched the default theme: C:\Users\wetcat\AppData\Roaming\Mozilla\Firefox\Profiles\feriz.default and C:\Program Files (x86)\Mozilla Firefox In the second I could find the extension - theme but without any CSS. In the AppData I couldn't find any CSS or theme folder. WHERE is the file to create or alter the CSS?? I'm using Firefox 11.

    Read the article

  • Intel Network Connection: This device cannot start. (Code 10)

    - by harryuser
    I have a Intel® Desktop Board DP55KG (see http://www.intel.com/products/desktop/motherboards/DP55KG/DP55KG-overview.htm), which has a Intel 82578DC Gigabit Network Connection on board. Additionally, I have a Intel PRO/1000 PT Dual Port Server Adapter in a PCI express slot and I am running Windows 7 Professional 32-bit. Also I am running with Intels latest network driver, in the 82578DC questions this means 11.6.92.0 with driver date 2010.04.12. The problem I am having is that the Intel 82578DC Gigabit Network Connection will not start on boot with the following message: "This device cannot start. (Code 10)". Disabling and then enabling the device after boot makes the network connection work again without any problems, but as soon as I reboot the problem occurs again. Any suggestion how to fix this? I have seen this problem on another Intel S3420GP board as well in Windows 7 that is.

    Read the article

  • Updating GeForce 9200 driver on Vista (64-bit) yields installer failed

    - by weka
    OK, so I have a Windows Vista... more specifically this: http://www.newegg.com/Product/Product.aspx?Item=N82E16883103182 a Acer Aspire AX3200-U3600A Desktop. I have DirectX 11 and I am trying to update my drivers... During the update of the latest one: GeForce 306.23 Driver my screen flashes a bit and goes black. This is standard when updating GRAPHIC DRIVERS. Then... my screen shifts 50 pixels or so to the left... OFFSCREEN. Not even Auto Image Adjust will fix the screen back... Then after that happens, I get this: Help, please? I just want to update my graphic drivers....

    Read the article

  • How can install scripts determine which are the correct equivalents for /usr/lib for 32- and 64-bit libraries?

    - by Randalli
    I have an SDK that must install 32-bit and 64-bit files in the correct places under /usr/lib for a variety of Linux distributions. For example, it appears that for Fedora, /usr/lib64 is the 64bit lib, but for Debian based systems, /usr/lib is the 64bit directory. I want to find out if there is a reliable way to determine the correct locations. More specifically, is there a way an install script can determine programmatically which are the correct equivalents for /usr/lib for 32- and 64-bit libraries on a given distribution?

    Read the article

  • How to share Opera extensions preferences between my two computers ?

    - by Riduidel
    Well, the title is quite unambiguous. However, let me clarify it even more. Starting with Opera 11, there now are Opera extensions, which are compliant to W3C widget specification. This allows us to use it on whichever browser supports their (well, currently, only Opera does). Anyway, suppose I have two computers, each one using Opera. How could I possibly synchronize used extensions and their preferences ? With Opera Link ? I didn't saw any kind of extension sharing in it With Dropbox/any other file sharing application ? If so, how could I do that ?

    Read the article

  • cloud hosting with only root partition

    - by user123198
    We are starting a website possibly with couple of thousands hits every day and few thousands registered users. By our hosting provider we were adviced to go with cloud hosting which we can easily expand later if we need. It is Ubuntu 11 running in WM. The problem we run into is the disk is divided only in root and swap partition which is not advised from security point of view. When consulting this with technical support we got the reply that it is not possible to make more partitions and that it is mainly issue with windows server and linux is generally fine. I'm looking here for an advice if we should switch the hosting for perhaps dedicated server where we have the full control or it is something not too be worried about too much.

    Read the article

  • OpeVPN log connecting client IPs

    - by TossUser
    I looking for the best solution to log all connecting client's ip to either a text file or a database who logs into my VPN server. Under the IP I mean the public WAN IP on the internet where they are connecting from. A hack could definitely be to make the openvpn server log to a separate logfile and run logtail periodically to extract the necessary information. So the database I want to build would look like: Client_Name | Client_IP | Connection_date roadwarr1 | 72.84.99.11 | 03/04/14 - 22:44:00 Sat Please don't recommend me to use the commercial Openvpn Access Server. That's not a real solution here. If the disconnection date could be determined that would be even better so I could see how long a client was connected and from where! Thank you

    Read the article

  • How does Office 2008 for Mac store its Recent items?

    - by zenopolis
    I don't have access to Office 2008, but require the information for a project I'm working on. I'm mainly interested in Word, Excel and Powerpoint. This is the information I have gathered so far... The preference file is: ~/Library/Preferences/com.microsoft.office.plist The property keys take the form: 2008\File Aliases\{APP}{n} 2008\MRU Access Date\{APP}{n} where {APP} represents an Office application, and {n} represents a number starting from 0. The applications are represented by the following values: MSWD (Word) XCEL (Excel) What value represents PowerPoint? In the property list I've seen, the numbers represented by {n} range from 0-10 (11 items). Is 10 the limit? or is this unrestrained? Finally, I've noticed that Office 2011 does not add its Recent Items to the Apple System menu: Apple > Recent Items Is Office 2008 the same?

    Read the article

  • which linux flavour should I use to for my hosting server?

    - by rabbit
    Hi, We plan to host our website on a linux server. The site is created using java based technologies and will run on multiple instances of tomcat with apache in the front. I want to go in for a 64 bit linux OS so that I can install 64bit jvm. So my options are : Ubuntu Fedora CentOS which one (and which version) would be the most stable?

    Read the article

  • downgrading the php version

    - by aadiahg
    I used to upgrade my php from 5.3.5-1ubuntu7.11 to 5.3.18-1~dotdeb.0 I got a lot of problems after the upgrading process . My localhost/phpmyadmin displaying the blank screen. apache2 show me a warning message waiting [Sun Nov 04 12:11:21 2012] [warn] The Alias directive in /etc/apache2/conf.d/phpmyadmin.conf at line 3 will probably never match because it overlaps an earlier Alias. most of CMS cant installed and show me this error Required MySQL version for CMS is 5.x but this server has: mysqlnd 5.0.8-dev the Scripts that has been already installed some of there functions doesn’t work i've googled a lot to fix this problems also i ve googled about downgrading the php version from 5.3.18 to 5.3.x but it doesn’t work with me Can you help please Many thanks

    Read the article

  • Resize2fs at 81h and counting

    - by Adam
    Setup: 12x 1TB drives in a RAID6 (MDADM) crypt-setup running ontop of MDADM LVM running on the crypted drives EXT4 on the LVM Background: I added a new drive to the RAID (increasing from 11 to 12 drives), and 'bubbled' up through the layers (MDADM, etc...) to reizing the ext4 partition. This machine is used as a centralized repository for photography and as a backup server (for both Windows and Mac machines) so bringing it down to add the drive and wait for the resizing and everything wasn't really an option. So I started the resize operation several days ago. HTOP is reporting the resize2fs operation as running for 81h now. DMESG and syslog are both clear, and the drives are still accessable. The resize command reports it's started an online resize of the partition, so the process IS running, and it is burning through 100% of one of my cores. Question: Is it normal for the operation to take this long or has something gone horribly wrong? Where would I start looking for signs of trouble?

    Read the article

  • linux rsync problem

    - by friends
    i following the tutorial of the http://www.howtoforge.com/mirror-your-web-site-with-rsync-on-fedora-10 i have completely step by step following the instructions and setup the key, script my problem is when i use server1 to type the command , it still prompt me for password. then i look the /var/log/secure, i 've found the message Authentication tried for root with correct key but not from a permitted host (host=123132132312.static.ctinets.com, ip=20x.80.236.xxx). can anyone help?

    Read the article

  • Mount network drive

    - by user971155
    I'm using linux(ubuntu), there's a linux(fedora) server, that I can log in with ssh, is there any possibility //server/dir /mnt/my_mount_dir cifs username=loginpassword=11111,uid=1000,iocharset=utf8,codepage=unicode,unicode 0 0 As far as I'm concerned, this construction uses SMB as primary tool. Is there any possibility to use NFS or any another approach, because in case of SMB it tends to have permission, symlink collisions. PS It would be great if you also provide some links. Thanks.

    Read the article

  • Problems with uninstallation of windows 8

    - by Wolvorin
    I installed windows 8's developer preview version dual boot with win 7 ultimate. I put my win 8's partition to 11 GB (almost), but now when I try to uninstall the win 8 it dont allow me to uninstall it saying no enough space. What to do ?? Then I try to login to win 7 and increase the size of the partition of win 8. This also is not possible. Please help me with it. I want to uninstall it but how and what to do?

    Read the article

  • Why is this server redirecting to another page???

    - by Mike L.
    I am building a site for a client. For a reason unknown to me www.domain.com forwards to www.domain.com/directory/home.html. If i type www.domain.com/index.php it works correctly. I have checked .htaccess there was nothing there, so I set the index to index.php which works fine in every directory other than the root directory. I have root access and have checked the httpd.conf (did a search in VI for the document that I was being redirected to) and anything else I could think of. Where should I look next? The server is a VPS running CentOS 5.5 with multiple domains, has CPanel WHM 11 for root access and CPanel X installed for each domain.

    Read the article

  • Intel Corporation Ethernet Connection does not start properly

    - by Oscar Alejos
    I'm experiencing some problems when trying to connect my PC to the router through a switch. When the PC is directly connected to the router, everything works fine, Ubuntu (14.04) starts normally, and the Internet connection runs inmediately. The Ethernet controller is the Intel Corporation Ethernet Connection, as lspci returns: $ lspci | grep Eth 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 04) However, when I try to connect through the switch what I get is the following. dmesg returns: $ dmesg | grep eth [ 1.035585] e1000e 0000:00:19.0 eth0: registered PHC clock [ 1.035587] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) 00:22:4d:a7:be:5d [ 1.035589] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection [ 1.035625] e1000e 0000:00:19.0 eth0: MAC: 11, PHY: 12, PBA No: FFFFFF-0FF [ 1.357838] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 2.165413] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 2.165574] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 2.641287] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 16.715086] e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx [ 16.715090] e1000e 0000:00:19.0 eth0: 10/100 speed: disabling TSO [ 16.715117] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready It looks like eth0 is properly working. Actually, nm-tool returns: $ nm-tool - Device: eth0 [Conexión cableada] ------------------------------------------- Type: Wired Driver: e1000e State: connected Default: yes HW Address: 00:22:4D:A7:BE:5D Capabilities: Carrier Detect: yes Speed: 100 Mb/s Wired Properties Carrier: on IPv4 Settings: Address: 192.168.1.30 Prefix: 24 (255.255.255.0) Gateway: 192.168.1.1 DNS: 80.58.61.250 DNS: 80.58.61.254 DNS: 192.168.1.1 However, ping returns: $ ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. From 192.168.1.30 icmp_seq=1 Destination Host Unreachable From 192.168.1.30 icmp_seq=2 Destination Host Unreachable From 192.168.1.30 icmp_seq=3 Destination Host Unreachable The connection is restored by restarting it: # ifconfig eth0 down # ifconfig eth0 up From this point on, everything runs smoothly, as if the PC were directly connected to the router. It seems to be an issue related to the integrated LAN adaptor and the Ethernet controller, since my laptop connects without any problem. My desktop board is an Intel DB85FL. I'd be grateful if anyone could give some ideas on how to solve this issue. Thank you in advance.

    Read the article

  • Version Assemblies with TFS 2010 Continuous Integration

    - by Steve Michelotti
    When I first heard that TFS 2010 had moved to Workflow Foundation for Team Build, I was *extremely* skeptical. I’ve loved MSBuild and didn’t quite understand the reasons for this change. In fact, given that I’ve been exclusively using Cruise Control for Continuous Integration (CI) for the last 5+ years of my career, I was skeptical of TFS for CI in general. However, after going through the learning process for TFS 2010 recently, I’m starting to become a believer. I’m also starting to see some of the benefits with Workflow Foundation for the overall processing because it gives you constructs not available in MSBuild such as parallel tasks, better control flow constructs, and a slightly better customization story. The first customization I had to make to the build process was to version the assemblies of my solution. This is not new. In fact, I’d recommend reading Mike Fourie’s well known post on Versioning Code in TFS before you get started. This post describes several foundational aspects of versioning assemblies regardless of your version of TFS. The main points are: 1) don’t use source control operations for your version file, 2) use a schema like <Major>.<Minor>.<IncrementalNumber>.0, and 3) do not keep AssemblyVersion and AssemblyFileVersion in sync. To do this in TFS 2010, the best post I’ve found has been Jim Lamb’s post of building a custom TFS 2010 workflow activity. Overall, this post is excellent but the primary issue I have with it is that the assembly version numbers produced are based in a date and look like this: “2010.5.15.1”. This is definitely not what I want. I want to be able to communicate to the developers and stakeholders that we are producing the “1.1 release” or “1.2 release” – which would have an assembly version number of “1.1.317.0” for example. In this post, I’ll walk through the process of customizing the assembly version number based on this method – customizing the concepts in Lamb’s post to suit my needs. I’ll also be combining this with the concepts of Fourie’s post – particularly with regards to the standards around how to version the assemblies. The first thing I’ll do is add a file called SolutionAssemblyVersionInfo.cs to the root of my solution that looks like this: 1: using System; 2: using System.Reflection; 3: [assembly: AssemblyVersion("1.1.0.0")] 4: [assembly: AssemblyFileVersion("1.1.0.0")] I’ll then add that file as a Visual Studio link file to each project in my solution by right-clicking the project, “Add – Existing Item…” then when I click the SolutionAssemblyVersionInfo.cs file, making sure I “Add As Link”: Now the Solution Explorer will show our file. We can see that it’s a “link” file because of the black arrow in the icon within all our projects. Of course you’ll need to remove the AssemblyVersion and AssemblyFileVersion attributes from the AssemblyInfo.cs files to avoid the duplicate attributes since they now leave in the SolutionAssemblyVersionInfo.cs file. This is an extremely common technique so that all the projects in our solution can be versioned as a unit. At this point, we’re ready to write our custom activity. The primary consideration is that I want the developer and/or tech lead to be able to easily be in control of the Major.Minor and then I want the CI process to add the third number with a unique incremental number. We’ll leave the fourth position always “0” for now – it’s held in reserve in case the day ever comes where we need to do an emergency patch to Production based on a branched version.   Writing the Custom Workflow Activity Similar to Lamb’s post, I’m going to write two custom workflow activities. The “outer” activity (a xaml activity) will be pretty straight forward. It will check if the solution version file exists in the solution root and, if so, delegate the replacement of version to the AssemblyVersionInfo activity which is a CodeActivity highlighted in red below:   Notice that the arguments of this activity are the “solutionVersionFile” and “tfsBuildNumber” which will be passed in. The tfsBuildNumber passed in will look something like this: “CI_MyApplication.4” and we’ll need to grab the “4” (i.e., the incremental revision number) and put that in the third position. Then we’ll need to honor whatever was specified for Major.Minor in the SolutionAssemblyVersionInfo.cs file. For example, if the SolutionAssemblyVersionInfo.cs file had “1.1.0.0” for the AssemblyVersion (as shown in the first code block near the beginning of this post), then we want to resulting file to have “1.1.4.0”. Before we do anything, let’s put together a unit test for all this so we can know if we get it right: 1: [TestMethod] 2: public void Assembly_version_should_be_parsed_correctly_from_build_name() 3: { 4: // arrange 5: const string versionFile = "SolutionAssemblyVersionInfo.cs"; 6: WriteTestVersionFile(versionFile); 7: var activity = new VersionAssemblies(); 8: var arguments = new Dictionary<string, object> { 9: { "tfsBuildNumber", "CI_MyApplication.4"}, 10: { "solutionVersionFile", versionFile} 11: }; 12:   13: // act 14: var result = WorkflowInvoker.Invoke(activity, arguments); 15:   16: // assert 17: Assert.AreEqual("1.2.4.0", (string)result["newAssemblyFileVersion"]); 18: var lines = File.ReadAllLines(versionFile); 19: Assert.IsTrue(lines.Contains("[assembly: AssemblyVersion(\"1.2.0.0\")]")); 20: Assert.IsTrue(lines.Contains("[assembly: AssemblyFileVersion(\"1.2.4.0\")]")); 21: } 22: 23: private void WriteTestVersionFile(string versionFile) 24: { 25: var fileContents = "using System.Reflection;\n" + 26: "[assembly: AssemblyVersion(\"1.2.0.0\")]\n" + 27: "[assembly: AssemblyFileVersion(\"1.2.0.0\")]"; 28: File.WriteAllText(versionFile, fileContents); 29: }   At this point, the code for our AssemblyVersion activity is pretty straight forward: 1: [BuildActivity(HostEnvironmentOption.Agent)] 2: public class AssemblyVersionInfo : CodeActivity 3: { 4: [RequiredArgument] 5: public InArgument<string> FileName { get; set; } 6:   7: [RequiredArgument] 8: public InArgument<string> TfsBuildNumber { get; set; } 9:   10: public OutArgument<string> NewAssemblyFileVersion { get; set; } 11:   12: protected override void Execute(CodeActivityContext context) 13: { 14: var solutionVersionFile = this.FileName.Get(context); 15: 16: // Ensure that the file is writeable 17: var fileAttributes = File.GetAttributes(solutionVersionFile); 18: File.SetAttributes(solutionVersionFile, fileAttributes & ~FileAttributes.ReadOnly); 19:   20: // Prepare assembly versions 21: var majorMinor = GetAssemblyMajorMinorVersionBasedOnExisting(solutionVersionFile); 22: var newBuildNumber = GetNewBuildNumber(this.TfsBuildNumber.Get(context)); 23: var newAssemblyVersion = string.Format("{0}.{1}.0.0", majorMinor.Item1, majorMinor.Item2); 24: var newAssemblyFileVersion = string.Format("{0}.{1}.{2}.0", majorMinor.Item1, majorMinor.Item2, newBuildNumber); 25: this.NewAssemblyFileVersion.Set(context, newAssemblyFileVersion); 26:   27: // Perform the actual replacement 28: var contents = this.GetFileContents(newAssemblyVersion, newAssemblyFileVersion); 29: File.WriteAllText(solutionVersionFile, contents); 30:   31: // Restore the file's original attributes 32: File.SetAttributes(solutionVersionFile, fileAttributes); 33: } 34:   35: #region Private Methods 36:   37: private string GetFileContents(string newAssemblyVersion, string newAssemblyFileVersion) 38: { 39: var cs = new StringBuilder(); 40: cs.AppendLine("using System.Reflection;"); 41: cs.AppendFormat("[assembly: AssemblyVersion(\"{0}\")]", newAssemblyVersion); 42: cs.AppendLine(); 43: cs.AppendFormat("[assembly: AssemblyFileVersion(\"{0}\")]", newAssemblyFileVersion); 44: return cs.ToString(); 45: } 46:   47: private Tuple<string, string> GetAssemblyMajorMinorVersionBasedOnExisting(string filePath) 48: { 49: var lines = File.ReadAllLines(filePath); 50: var versionLine = lines.Where(x => x.Contains("AssemblyVersion")).FirstOrDefault(); 51:   52: if (versionLine == null) 53: { 54: throw new InvalidOperationException("File does not contain [assembly: AssemblyVersion] attribute"); 55: } 56:   57: return ExtractMajorMinor(versionLine); 58: } 59:   60: private static Tuple<string, string> ExtractMajorMinor(string versionLine) 61: { 62: var firstQuote = versionLine.IndexOf('"') + 1; 63: var secondQuote = versionLine.IndexOf('"', firstQuote); 64: var version = versionLine.Substring(firstQuote, secondQuote - firstQuote); 65: var versionParts = version.Split('.'); 66: return new Tuple<string, string>(versionParts[0], versionParts[1]); 67: } 68:   69: private string GetNewBuildNumber(string buildName) 70: { 71: return buildName.Substring(buildName.LastIndexOf(".") + 1); 72: } 73:   74: #endregion 75: }   At this point the final step is to incorporate this activity into the overall build template. Make a copy of the DefaultTempate.xaml – we’ll call it DefaultTemplateWithVersioning.xaml. Before the build and labeling happens, drag the VersionAssemblies activity in. Then set the LabelName variable to “BuildDetail.BuildDefinition.Name + "-" + newAssemblyFileVersion since the newAssemblyFileVersion was produced by our activity.   Configuring CI Once you add your solution to source control, you can configure CI with the build definition window as shown here. The main difference is that we’ll change the Process tab to reflect a different build number format and choose our custom build process file:   When the build completes, we’ll see the name of our project with the unique revision number:   If we look at the detailed build log for the latest build, we’ll see the label being created with our custom task:     We can now look at the history labels in TFS and see the project name with the labels (the Assignment activity I added to the workflow):   Finally, if we look at the physical assemblies that are produced, we can right-click on any assembly in Windows Explorer and see the assembly version in its properties:   Full Traceability We now have full traceability for our code. There will never be a question of what code was deployed to Production. You can always see the assembly version in the properties of the physical assembly. That can be traced back to a label in TFS where the unique revision number matches. The label in TFS gives you the complete snapshot of the code in your source control repository at the time the code was built. This type of process for full traceability has been used for many years for CI – in fact, I’ve done similar things with CCNet and SVN for quite some time. This is simply the TFS implementation of that pattern. The new features that TFS 2010 give you to make these types of customizations in your build process are quite easy once you get over the initial curve.

    Read the article

< Previous Page | 232 233 234 235 236 237 238 239 240 241 242 243  | Next Page >