Exemple #1
0
        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);
        }