public void WfcServiceHost_Parse_BehaviorXML() { // Verify that we can parse behavior XML. WcfServiceHost host; host = new WcfServiceHost(new TestService()); host.AddServiceEndpoint(typeof(ITestService), @"binding=HTTP;uri=http://localhost:8008/Unit/Test.svc;settings=<wsHttpBinding><security mode=""None""/></wsHttpBinding>"); host.ExposeServiceDescription(null, null); host.AddBehaviors( @"<behavior> <serviceSecurityAudit auditLogLocation=""Application"" suppressAuditFailure=""true"" serviceAuthorizationAuditLevel=""Success"" messageAuthenticationAuditLevel=""SuccessOrFailure"" /> <serviceThrottling maxConcurrentCalls=""121"" maxConcurrentInstances=""122"" maxConcurrentSessions=""123"" /> <serviceTimeouts transactionTimeout=""10m"" /> </behavior> "); ServiceBehaviorAttribute serviceBehavior = (ServiceBehaviorAttribute)host.Host.Description.Behaviors[typeof(ServiceBehaviorAttribute)]; ServiceSecurityAuditBehavior serviceSecurityAudit = (ServiceSecurityAuditBehavior)host.Host.Description.Behaviors[typeof(ServiceSecurityAuditBehavior)]; ServiceThrottlingBehavior serviceThrottling = (ServiceThrottlingBehavior)host.Host.Description.Behaviors[typeof(ServiceThrottlingBehavior)]; Assert.IsNotNull(serviceBehavior); Assert.IsNotNull(serviceSecurityAudit); Assert.IsNotNull(serviceThrottling); Assert.AreEqual("00:10:00", serviceBehavior.TransactionTimeout); Assert.AreEqual(AuditLogLocation.Application, serviceSecurityAudit.AuditLogLocation); Assert.IsTrue(serviceSecurityAudit.SuppressAuditFailure); Assert.AreEqual(AuditLevel.Success, serviceSecurityAudit.ServiceAuthorizationAuditLevel); Assert.AreEqual(AuditLevel.SuccessOrFailure, serviceSecurityAudit.MessageAuthenticationAuditLevel); Assert.AreEqual(121, serviceThrottling.MaxConcurrentCalls); Assert.AreEqual(122, serviceThrottling.MaxConcurrentInstances); Assert.AreEqual(123, serviceThrottling.MaxConcurrentSessions); }