Search Results

Search found 19134 results on 766 pages for 'support contract'.

Page 444/766 | < Previous Page | 440 441 442 443 444 445 446 447 448 449 450 451  | Next Page >

  • Code review “on a napkin” — could it be useful?

    - by gaRex
    Preconditions Team uses DVCS IDE supports comments parsing (like TODO and etc.) Tools like CodeCollaborator are expensive for budget Tools like gerrit are too complex for install or not usable Workflow Author publishes somewhere on central repo feature branch Reviewer fetch it and start review In case of some question/issue reviewer create comment with special label, like "BLA". Such label MUST not be in production code -- only on review stage: $somevar = 123; // BLA Why do echo this here? echo $somevar; When reviewer finish post comments -- it just commits with stupid message "comments" and pushes back Author pulls feature branch back and answer comments in similar way or improve code and push it back When "BLA" comments have gone we can think, that review has successfully finished. Author interactively rebases feature branch, stashes it to remove those "comment" commits and now is ready to merge feature to develop or make any action that usualy could be after successful internal review IDE support I know, that custom comment tags are possible in eclipse & netbeans. Sure it also should be in blablaStorm family. So my specific questions are Do you think this methodology is viable? Do you know something similar? What can be improved in it? ps: migrated from http://stackoverflow.com/questions/12692695/code-review-on-a-napkin-could-it-be-useful

    Read the article

  • Monogame - Shader parameters missing

    - by Layoric
    I am currently working on a simple game that I am building in Windows 8 using MonoGame (develop3d). I am using some shader code from a tutorial (made by Charles Humphrey) and having an issue populating a 'texture' parameter. I'm not well versed writing shaders, so this might be caused by a more obvious problem. I have debugged through MonoGame's Content processor to see how this shader is being parsed, all the non 'texture' parameters are there and look to be loading correctly. Shader code below #include "PPVertexShader.fxh" float2 lightScreenPosition; float4x4 matVP; float2 halfPixel; float SunSize; texture flare; sampler2D Scene: register(s0){ AddressU = Clamp; AddressV = Clamp; }; sampler Flare = sampler_state { Texture = (flare); AddressU = CLAMP; AddressV = CLAMP; }; float4 LightSourceMaskPS(float2 texCoord : TEXCOORD0 ) : COLOR0 { texCoord -= halfPixel; // Get the scene float4 col = 0; // Find the suns position in the world and map it to the screen space. float2 coord; float size = SunSize / 1; float2 center = lightScreenPosition; coord = .5 - (texCoord - center) / size * .5; col += (pow(tex2D(Flare,coord),2) * 1) * 2; return col * tex2D(Scene,texCoord); } technique LightSourceMask { pass p0 { VertexShader = compile vs_4_0 VertexShaderFunction(); PixelShader = compile ps_4_0 LightSourceMaskPS(); } } I've removed default values as they are currently not support in MonoGame and also changed ps and vs to v4 instead of 2. Could this be causing the issue? As I debug through 'DXConstantBufferData' constructor (from within the MonoGameContentProcessing project) I find that the 'flare' parameter does not exist. All others seem to be getting created fine. Any help would be appreciated.

    Read the article

  • myToys.de GmbH announces integration of ZVT payment terminal interface with Oracle Retail Point-of-Service

    - by user801960
    In our latest guest post, Sascha Kraatz, Developer Oracle E-Business Suite of myToys.de announces the development and integration of its ZVT payment terminal interface with the Oracle Retail Point-of-Service solution. myToys.de GmbH, which runs Oracle Retail Point-of-Service (ORPOS) in its 13 retail stores in Germany (see press release), has developed and implemented a Java-based interface for integrating the ZVT payment terminal with ORPOS. Through the combined support of payment service provider, easycash GmbH, and Ingenico GmbH, Germany´s leading payment terminal provider, myToys.de has become the first organisation to create this new automated solution for the Oracle Retail Point-of-Service, which has eliminated input errors that could occur with manual payment terminals and is localised for the German market. Ingo Stober, head of retail business at myToys.de confirms: “With this solution, we can speed up the payment process, reduce manual errors and enhance the customer experience in our stores”. myToys.de GmbH is a member of the Otto Group and one of the leading multichannel retailers for toys and other kids products in Germany. Customers can choose from over 100,000 attractive products, starting with items for expectant mothers or basic baby equipment to items for school children and beyond. In 2006, the first of 13 myToys.de retail branches was opened. If you would like to find out more about this solution, please contact the head of Oracle E-Business Suite Development at myToys.de, Mr. Ralf Schmilewski, or leave a comment below.

    Read the article

  • Is there any multi-touch graphics tablet with Linux drivers?

    - by Zifre
    After watching the absolutely amazing 10/GUI video, I have been dying to try to implement something like this. I can do the software side quite easily, but I don't have the hardware. The Wacom Bamboo Fun would work, but the Linux drivers don't support the multi-touch features. Microsoft's "UnMouse Pad" looks like the perfect solution, but it is not commercially available yet. Are there any similar devices that would work? Alternatively, is there a way to build a DIY version? (It is fairly easy to build a multi-touch display with a webcam and IR LEDs, but it would not be pressure sensitive. Does anyone have any info on how the UnMouse Pad works and if it is possible to build one?) EDIT: I should clarify that I don't want a multi-touch display. I want the sensor to be separate from the display. If that sounds crazy, watch the 10/GUI video.

    Read the article

  • Windows XP does not list WPA wireless networks

    - by Tomalak
    What can be the reason that Windows XP does not show WPA-encrypted wireless networks? The laptop I have problems with is an older model (Toshiba Satellite Pro 6100) with Windows XP SP3 on it, fresh install. The wireless network card in it is an Agere product that lists as "Toshiba Wireless LAN Mini PCI Card". The networks showed up perfectly before I first tried to connect to one (it was set to WPA2). The connection failed (the card supports WPA only), then something must have happend and Windows hides these networks now. A manually configured WPA setup via Windows' own wizard works, I'm using it right now. The network just won't show up in the list of available network on its own. I suspect that XP incorrectly set a flag somewhere that this network card does not support WPA. Is there such a flag, and if so, how can I change it back?

    Read the article

  • Linux openSUSE 11.2 on VAIO Z890T

    - by alfredozn
    I have a VAIO Z-series (VGN-Z890T) and I want to install openSUSE 11.2. I found some guides to fix the problem for the video card switch, but all for older models, those preconfigured with windows vista. It looks like newer model use a different bios configuration to support hot swap between cards in Windows 7 and this change breaks the solution to my problem. I'm not an experienced linux user, but i was using it recently on my old computer ind definitively I want it on my laptop. I installed openSUSE once and i was trying and trying to solve it until I finished reinstall again and use a fresh installation. My question is: Does anyone has installed and configured successfully openSUSE on one of the latest vaio z laptops???

    Read the article

  • Does Office365 for education have litigation hold? [closed]

    - by Neobyte
    Both Google and Microsoft fail me, so I'm hoping someone out there with an O365 education deployment (A1 or A2) could help. Do the education plans have options for litigation hold? What's the per-head cost? I find plenty of people asking this question but noone definitively answering it. I know the normal enterprise offerings support litigation hold, but I can find nothing on the education offerings. I'm concerned only with staff. If at all possible, a link to an online reference would be handy too. Many thanks!

    Read the article

  • Linux driver for Intel ICH10R

    - by Pablo Santa Cruz
    Hi! I would like to know what 64-bit Linux distribution can I use with an Intel ICH10R RAID. I have tried CentOS 5.2 and Ubuntu Server 8.04. Neither support that raid controller. Also, I would like to know where do I setup the RAID-5 I want to use. I am using a TYAN S7002 motherboard and the BIOS software does not include an option to configure the RAID as I am used to do with Dell servers... Thanks a lot in advance.

    Read the article

  • Gist (or other git-backed pastebin) on my own Server?

    - by Jim Dennis
    Does anyone know of a package to allow me to run a clone of gist on my own internal servers? I'd like to encourage our dev. teams to use a GIST like pastebin (with syntax highlighting and, preferably, with a git-based or git compatible backend). However, I want the code to remain within our network. Suggestions? (By the way, I've glanced at things like pygist but that's a client rather than providing the pastebin server side functionality. I suppose one option would be to add support for a Git backend to: pasttle

    Read the article

  • Windows XP won't boot after drive transplant

    - by Nathan
    Hi all, I moved my hard drive from my Lenovo laptop into my Asus Eee PC netbook. When I started the netbook, after POST all I got was a black screen with a cursor in the upper left corner. I thought that the migration should work OK because this was a 32-bit version of Windows XP, and the Atom processor in the Asus should support the x86 instruction set. However, I don't know much about Windows, so maybe this was a dumb thought. I did verify that the BIOS can find the drive. It required major surgery to replace the drive, so any solution requiring me to remove the transplant drive is not going to fly. Keeping in mind that the netbook has no optical drive and that I have no other Windows computers (all my other computers run Linux), is there any way I can fix this problem? Thanks! Nathan

    Read the article

  • Permissions problem on mounting afp drive

    - by Ron Gejman
    I am trying to mount a network drive via AFP on an Ubuntu 10.04 server machine. After installing AFP support, I use the following command: sudo mount_afp afp://USER:[email protected]/directory/ /media/dir This seems to work and it tells me that mounting succeeded. However, when I navigate to /media/dir I get the following error: cd: cfs: Input/output error Permissions in /media are: d????????? ? ? ? ? dir/ drwx------ 12 user 4.0K 2010-10-25 16:08 otherdisk/ So there is a permissions problem here. I eventually want to mount this drive automatically using fstab. What do I need to do to make the disk accessible?

    Read the article

  • Compiling Gnucash 2.6.3 in Ubuntu 14.04

    - by wolveryn
    Downloaded the debian file from source forge and followed instructions, where these errors appear, I re-downloaded the file several times with same error. I want to install the latest Gnucash not the one available on software center. Thank you for your support. /qof/gnc-date/qof print date dmy buff: There are some differences between distros in the way they namelocales, and this can cause trouble with the locale-basedformatting. If you get the assert in this function, run locale -aand make sure that en_US, en_GB, and fr_FR are installed and thatif a suffix is needed it's in the suffixes array.** ERROR:test-gnc-date.c:465:test_gnc_setlocale: code should not be reached FAIL GTester: last random seed: R02Sd8d3d0e67be954baa8ec75d81a14c0e3 /bin/bash: line 1: 18889 Terminated MALLOC_CHECK_=2 MALLOC_PERTURB_=$((${RANDOM:-256} % 256)) gtester --verbose test-qof make[5]: *** [test-nonrecursive] Error 143 make[5]: Leaving directory `/home/ahmed/gnucash/gnucash-2.6.3/src/libqof/qof/test' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/home/ahmed/gnucash/gnucash-2.6.3/src/libqof/qof/test' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/home/ahmed/gnucash/gnucash-2.6.3/src/libqof/qof' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/home/ahmed/gnucash/gnucash-2.6.3/src/libqof' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/home/ahmed/gnucash/gnucash-2.6.3/src' make: *** [check-recursive] Error 1

    Read the article

  • Juniper Networks SRX240 as a office router?

    - by Jordan Mendelson
    We're a small (7 person) fast growing startup who just got our new office and we're having a 100 Mbps line installed from Cogent. I'm not familiar with Juniper devices, however the equivalent Cisco appears to be rather expensive. Features we'd like: Offsite VPN access (PPTP or L2TP IPsec) - something Mac compatible IPv6 support NAT - ideally supporting multiple outside addresses mapped to VLANs DHCP DNS forwarding would be nice QoS to keep our SIP phones happy (managed through RingCentral) VLANs for guest/internal The device is going to be connected to a set of SIP phones as well as two Ruckus 7962s for wireless access. Eventually I'd like to connect it to a Juniper ESX switch as we grow. Would a Juniper SRX240 handle this ok?

    Read the article

  • What is the definition of "Big Data"?

    - by Ben
    Is there one? All the definitions I can find describe the size, complexity / variety or velocity of the data. Wikipedia's definition is the only one I've found with an actual number Big data sizes are a constantly moving target, as of 2012 ranging from a few dozen terabytes to many petabytes of data in a single data set. However, this seemingly contradicts the MIKE2.0 definition, referenced in the next paragraph, which indicates that "big" data can be small and that 100,000 sensors on an aircraft creating only 3GB of data could be considered big. IBM despite saying that: Big data is more simply than a matter of size. have emphasised size in their definition. O'Reilly has stressed "volume, velocity and variety" as well. Though explained well, and in more depth, the definition seems to be a re-hash of the others - or vice-versa of course. I think that a Computer Weekly article title sums up a number of articles fairly well "What is big data and how can it be used to gain competitive advantage". But ZDNet wins with the following from 2012: “Big Data” is a catch phrase that has been bubbling up from the high performance computing niche of the IT market... If one sits through the presentations from ten suppliers of technology, fifteen or so different definitions are likely to come forward. Each definition, of course, tends to support the need for that supplier’s products and services. Imagine that. Basically "big data" is "big" in some way shape or form. What is "big"? Is it quantifiable at the current time? If "big" is unquantifiable is there a definition that does not rely solely on generalities?

    Read the article

  • How do I receive email sent to postmaster?

    - by jonescb
    I have a VPS server that I would like to get an SSL certificate for, and the CA needs an email address to verify that I own the domain. The options are: [email protected], [email protected], [email protected], and an address to @whoisguard.com. The server runs CentOS 5, and all I have set up for email is sendmail. I don't have POP3 or IMAP. According to this Wikipedia article on Postmaster, it says that all SMTP servers support postmaster and it cites RFC 5321. Does sendmail conform to this? I tried sending a test mail to [email protected], but I don't know how to receive it on my server. Do I need to open up any ports? I haven't gotten a message back saying that my test mail failed to send, so my server must have gotten it.

    Read the article

  • Nvidia System Tools compatible with GTX 560 Ti?

    - by Paula Ferreira
    I want to download and use Nvidia System Tools with ESA suport. But on the "Supported Products" tab my GTX 560 Ti isn't listed. The product was last released on April last year, but it shows support for both the GTX 570 and 580 as well as the GTX 4x family. All sister cards of the GTX 560. Has anyone successfuly ran this nvidia product with the GTX 560 Ti? Why wasn't this card included on the list of supported products?

    Read the article

  • SQLAuthority News – Microsoft SQL Server 2012 Service Pack 1 Released (SP1)

    - by pinaldave
    Last week, I was attending SQLPASS 2012 and I had great fun attending the event. During the event long awaited SQL Serer 2012 Service Pack 1 was released. I am pretty excited with SP1 as new service packs are cumulative updates and upgrade all editions and service levels of SQL Server 2012 to SP1. This service pack contains SQL Server 2012 Cumulative Update 1 (CU1) and Cumulative Update 2 (CU2). The latest SP1 has many new and enhanced features. Here are a few for example: Cross-Cluster Migration of AlwaysOn Availability Groups for OS Upgrade Selective XML Index DBCC SHOW_STATISTICS works with SELECT permission New function returns statistics properties – sys.dm_db_stats_properties SSMS Complete in Express SlipStream Full Installation Business Intelligence highlights with Office and SharePoint Server 2013 Management Object Support Added for Resource Governor DDL Please note that the size of the service pack is near 1 GB. Here is the link to SQL Server 2012 Service Pack 1. SQL Server Express is the free and feature rich edition of the SQL Server. It is used with lightweight website and desktop applications. Here is the link to SQL Server 2012 EXPRESS Service Pack 1. Here is the question for you – how long have you been using SQL Server 2012? Reference: Pinal Dave (http://blog.sqlauthority.com) Filed under: PostADay, SQL, SQL Authority, SQL Documentation, SQL Download, SQL Query, SQL Server, SQL Tips and Tricks, T SQL, Technology Tagged: Service Pack

    Read the article

  • Call for Abstracts for the Fall Silverlight Connections Conference

    - by dwahlin
    We are putting out a call for abstracts to present at the Fall 2010 Silverlight Connections conference in Las Vegas, Nov 1-4, 2010. The due date for submissions is April 26, 2010. For submitting sessions, please use this URL: http://www.deeptraining.com/devconnections/abstracts Please keep the abstracts under 200 words each and in one paragraph. No bulleted items and line breaks, and please use a spell-checker. Do not email abstracts, you need to use the web-based tool to submit them. Please submit at least 3 abstracts. It will help your chances of being selected if you submitted 5 or more abstracts. Also, you are encouraged to suggest all-day pre or post conference workshops as well. We need to finalize the conference content and the tracks in just a few short weeks so we need your abstracts by April 26th. No exceptions will be granted on late submissions! Topics of interest include (but are not limited to): Silverlight Data and XML Technologies Customizing Silverlight Applications with Styles and Templates Using Expression Blend 4 Windows Phone 7 Application Development Silverlight Architecture, Patterns and Practices Securing Silverlight Applications Using WCF RIA Services Writing Elevated Trust Applications Anything else related to Silverlight You can use the URL above to submit sessions to Microsoft ASP.NET Connections, Silverlight Connections, Visual Studio Connections, or SQL Server Connections. Please realize that while we want a lot of the new and the cool, it's also okay to propose sessions on the more mundane "real world" stuff as it pertains to Silverlight. What you will get if selected: $500 per regular conference talk. Compensation for full-day workshops ranges from $500 for 1-20 attendees to $2500 for 200+ attendees. Coach airfare and hotel stay paid by the conference. Free admission to all of the co-located conferences Speaker party The adoration of attendees Your continued support of Microsoft Silverlight Connections and the other DevConnections conferences is appreciated. Good luck and thank you. Dan Wahlin and Paul Litwin Silverlight Conference Chairs

    Read the article

  • Firefox requests the master password twice

    - by Mehper C. Palavuzlar
    I've set a master password for Firefox. When Firefox starts, it strangely opens two separate password request windows. When I type in the master password and hit enter, Firefox opens without problems, but the other password request window stays there. I simply close it but it's annoying. Why are there 2 windows as it's enough to type the password once? I've upgraded Firefox from 3.5.5 to 3.5.6 but the problem remains. Any comments? PS: The latest news from this issue can be followed from the related Mozilla Support Forum.

    Read the article

  • Macbook shuts down when battery is empty (should have went to sleep)

    - by the_great_monkey
    In the past few weeks, my macbook shuts down when the battery dies. The battery does not even die at 0%, sometimes it shuts down at 5% or 10% remaining. I tried calibrating the baterry following this website: http://support.apple.com/kb/HT1490. But it does not really help. I regularly use battery in my macbook, I'd say I use around 2-3 cycles a week. My charge cycles is 440 cycles, and my current battery capacity is 3400mAh from the original 4100mAh. I have 2008 unibody Macbook. Does anyone know how to make it goes to sleep before the battery's dead? EDIT: The OS seems the think that the battery is ok...

    Read the article

  • Gnu/Linux package manager, multiple versions, no root privilege

    - by user744629
    I'm looking for a Gnu/Linux package manager, that can help to package, distribute, install sofware (actually scientific libraries), like this: do not required root privilege, for example, install in $HOME/opt or $HOME/local manage muliple version of a library, for example, with this directories organisation: $HOME/opt/somelib/4.2.1/lib/ $HOME/opt/somelib/4.2.1/include/ $HOME/opt/somelib/4.2.1/bin/ $HOME/opt/somelib/4.2.2/lib/ $HOME/opt/somelib/4.2.2/include/ $HOME/opt/somelib/4.2.2/bin/ $HOME/opt/anotherlib/1.0.0/lib/ $HOME/opt/anotherlib/1.0.0/include/ $HOME/opt/anotherlib/1.0.0/bin/ package contains source files, not binaries, build is performed during install. support for Mac OS X too would be good. Then it's up to the user to manage it's LD_LIBRARY_PATH, or compile with -L/good/path etc. Does it exists?

    Read the article

  • DTS to AC3 conversion for LG TV using mediatomb DLNA server

    - by prion crawler
    I want to convert a MKV video file containing DTS audio to a stream with AC3 audio. I want to pass this resulting stream to mediatomb's transcoding feature. Mediatomb will transfer the stream via DLNA to a LG TV, which does not support DTS audio. I have tried the VLC command below but the TV does not recognize the stream, and playing the destination stream on PC does not produce sound. vlc -vvv -I dummy INPUT.file --sout \ '#transcode{acodec=ac3,ab=256k,channels=2,threads=4} \ :std{mux=ts,access=file,dst=DEST.file}' The following ffmpeg command give a stream that plays on the TV with sound, but the ffmpeg process gets killed (with signal 15) within 10-15 seconds, and then the TV restarts the playback from the beginning. This goes on in loops. ffmpeg -i INPUT.file -acodec ac3 -ab 384k -vcodec copy \ -vbsf h264_mp4toannexb -f mpegts -y DEST.file I want to have a working DLNA server which transcodes DTS to AC3, any help is appreciated.

    Read the article

  • Software for monitoring internal software?

    - by Tyler Eaves
    Is there any good software for monitoring the health of a collection of related software? Requirements are as follows: Web-based, deployable on standard Linux/BSD software. Configurable to support a variety of processes, scheduled at various intervals. Some sort of dashboard interface, for monitoring status, viewing errors, etc. As an example, suppose we have a daily export that's scheduled to run at 6AM each morning. After the export completes, it would POST a status message, saying it had completed, passing in some sort of application key to identify the export. If that status message hadn't come in, by, say, 6:30AM, an e-mail might be sent, that application should go red on the dashboard, etc. Applications should also be able to post error/warning messages. Basically the goal is to be able to monitor all of our internal projects from one system, rather than a multitude of e-mails, log files, etc. I suspect that I'll probably have to end up writing this from scratch, but I just thought I'd ask.

    Read the article

  • It's Not TV- It's OTN: Top 10 Videos on the OTN YouTube Channel

    - by Bob Rhubart
    It's been a while since we checked in on what people are watching on the Oracle Technology Network YouTube Channel. Here are the Top 10 video for the last 30 days. Tom Kyte: Keeping Up with the Latest in Database Technology Tom Kyte expands on his keynote presentation at the Great Lakes Oracle Conference with tips for developers, DBAs and others who want to make sure they are prepared to work with the latest database technologies. That Jeff Smith: Oracle SQL Developer Oracle SQL Developer product manager Jeff Smith (yeah, that Jeff Smith) talks about his presentations at the Great Lakes Oracle Conference and shares his reaction to keynote speaker C.J. Date's claim that "SQL dropped the ball." Gwen Shapira: Hadoop and Oracle Database Oracle ACE Director Gwen Shapira @gwenshap talks about the fit between Hadoop and Oracle Database and dives into the details of why Oracle Loader for Hadoop is 5x faster. Kai Yu: Virtualization and Cloud Oracle ACE Director Kai Yu talks about the questions he is most frequently asked when he does presentations on cloud computing and virtualization. Mark Sewtz: APEX 4.2 Mobile App Development Application Express developer Marc Sewtz demos the new features he built into APEX4.2 to support Mobile App Development. Jeremy Schneider: RAC Attack Oracle ACE Jeremy Schneider @jer_s describes what you can expect when you come to a RAC (Real Application Cluster) Attack. Frits Hoogland: Exadata Under the Hood Oracle ACE Director Frits Hoogland (@fritshoogland) talks about the secret sauce under Exadata's hood. David Peake: APEX 4.2 New Features David Peake, PM for Oracle Application Express, gives a quick overview of some of the new APEX features. Greg Marsden: Hugepages = Huge Performance on Linux Greg Marsden of Oracle's Linux Kernel Engineering Team talks about some common customer performance questions and making the most of Oracle Linux 6 and Transparent HugePages. John Hurley: NEOOUG and GLOC 2013 Northeast Ohio Oracle User Group president John Hurley talks about the background and success of the 2013 Great Lakes Oracle Conference.

    Read the article

  • Enabling Service Availability in WCF Services

    - by cibrax
    It is very important for the enterprise to know which services are operational at any given point. There are many factors that can affect the availability of the services, some of them are external like a database not responding or any dependant service not working. However, in some cases, you only want to know whether a service is up or down, so a simple heart-beat mechanism with “Ping” messages would do the trick. Unfortunately, WCF does not provide a built-in mechanism to support this functionality, and you probably don’t to implement a “Ping” operation in any service that you have out there. For solving this in a generic way, there is a WCF extensibility point that comes to help us, the “Operation Invokers”. In a nutshell, an operation invoker is the class responsible invoking the service method with a set of parameters and generate the output parameters with the return value. What I am going to do here is to implement a custom operation invoker that intercepts any call to the service, and detects whether a “Ping” header was attached to the message. If the “Ping” header is detected, the operation invoker returns a new header to tell the client that the service is alive, and the real operation execution is omitted. In that way, we have a simple heart beat mechanism based on the messages that include a "Ping” header, so the client application can determine at any point whether the service is up or down. My operation invoker wraps the default implementation attached by default to any operation by WCF. internal class PingOperationInvoker : IOperationInvoker { IOperationInvoker innerInvoker; object[] outputs = null; object returnValue = null; public const string PingHeaderName = "Ping"; public const string PingHeaderNamespace = "http://tellago.serviceModel"; public PingOperationInvoker(IOperationInvoker innerInvoker, OperationDescription description) { this.innerInvoker = innerInvoker; outputs = description.SyncMethod.GetParameters() .Where(p => p.IsOut) .Select(p => DefaultForType(p.ParameterType)).ToArray(); var returnValue = DefaultForType(description.SyncMethod.ReturnType); } private static object DefaultForType(Type targetType) { return targetType.IsValueType ? Activator.CreateInstance(targetType) : null; } public object Invoke(object instance, object[] inputs, out object[] outputs) { object returnValue; if (Invoke(out returnValue, out outputs)) { return returnValue; } else { return this.innerInvoker.Invoke(instance, inputs, out outputs); } } private bool Invoke(out object returnValue, out object[] outputs) { object untypedProperty = null; if (OperationContext.Current .IncomingMessageProperties.TryGetValue(HttpRequestMessageProperty.Name, out untypedProperty)) { var httpRequestProperty = untypedProperty as HttpRequestMessageProperty; if (httpRequestProperty != null) { if (httpRequestProperty.Headers[PingHeaderName] != null) { outputs = this.outputs; if (OperationContext.Current .IncomingMessageProperties.TryGetValue(HttpRequestMessageProperty.Name, out untypedProperty)) { var httpResponseProperty = untypedProperty as HttpResponseMessageProperty; httpResponseProperty.Headers.Add(PingHeaderName, "Ok"); } returnValue = this.returnValue; return true; } } } var headers = OperationContext.Current.IncomingMessageHeaders; if (headers.FindHeader(PingHeaderName, PingHeaderNamespace) > -1) { outputs = this.outputs; MessageHeader<string> header = new MessageHeader<string>("Ok"); var untyped = header.GetUntypedHeader(PingHeaderName, PingHeaderNamespace); OperationContext.Current.OutgoingMessageHeaders.Add(untyped); returnValue = this.returnValue; return true; } returnValue = null; outputs = null; return false; } } The implementation above looks for the “Ping” header either in the Http Request or the Soap message. The next step is to implement a behavior for attaching this operation invoker to the services we want to monitor. [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false, Inherited = true)] public class PingBehavior : Attribute, IServiceBehavior, IOperationBehavior { public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints, BindingParameterCollection bindingParameters) { } public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) { } public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) { foreach (var endpoint in serviceDescription.Endpoints) { foreach (var operation in endpoint.Contract.Operations) { if (operation.Behaviors.Find<PingBehavior>() == null) operation.Behaviors.Add(this); } } } public void AddBindingParameters(OperationDescription operationDescription, BindingParameterCollection bindingParameters) { } public void ApplyClientBehavior(OperationDescription operationDescription, ClientOperation clientOperation) { } public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { dispatchOperation.Invoker = new PingOperationInvoker(dispatchOperation.Invoker, operationDescription); } public void Validate(OperationDescription operationDescription) { } } As an operation invoker can only be added in an “operation behavior”, a trick I learned in the past is that you can implement a service behavior as well and use the “Validate” method to inject it in all the operations, so the final configuration is much easier and cleaner. You only need to decorate the service with a simple attribute to enable the “Ping” functionality. [PingBehavior] public class HelloWorldService : IHelloWorld { public string Hello(string name) { return "Hello " + name; } } On the other hand, the client application needs to send a dummy message with a “Ping” header to detect whether the service is available or not. In order to simplify this task, I created a extension method in the WCF client channel to do this work. public static class ClientChannelExtensions { const string PingNamespace = "http://tellago.serviceModel"; const string PingName = "Ping"; public static bool IsAvailable<TChannel>(this IClientChannel channel, Action<TChannel> operation) { try { using (OperationContextScope scope = new OperationContextScope(channel)) { MessageHeader<string> header = new MessageHeader<string>(PingName); var untyped = header.GetUntypedHeader(PingName, PingNamespace); OperationContext.Current.OutgoingMessageHeaders.Add(untyped); try { operation((TChannel)channel); var headers = OperationContext.Current.IncomingMessageHeaders; if (headers.Any(h => h.Name == PingName && h.Namespace == PingNamespace)) { return true; } else { return false; } } catch (CommunicationException) { return false; } } } catch (Exception) { return false; } } } This extension method basically adds a “Ping” header to the request message, executes the operation passed as argument (Action<TChannel> operation), and looks for the corresponding “Ping” header in the response to see the results. The client application can use this extension with a single line of code, var client = new ServiceReference.HelloWorldClient(); var isAvailable = client.InnerChannel.IsAvailable<IHelloWorld>((c) => c.Hello(null)); The “isAvailable” variable will tell the client application whether the service is available or not. You can download the complete implementation from this location.    

    Read the article

< Previous Page | 440 441 442 443 444 445 446 447 448 449 450 451  | Next Page >